SS科学网络隧道搭建与踩坑 学习笔记
参考了网上的这篇教程https://zoomyale.com/2016/vultr_and_ss,跌跌撞撞,总算是搭好了隧道,可以实现在特殊环境下访问一些网站。
在自己的博客简单回顾一下操作流程吧,也算是为了方便以后的查阅。
1.注册账号,租用并部署vultr服务器
这里就不再赘述了。
2.通过PuTTY连接到自己购买的vps服务器
在参考其他博文时,发现还有一些前辈推荐了用Xshell来连接服务器,然而这似乎是收费软件,而且还被曝出过软件里藏了盗取服务器账密的后门...最终还是选择了使用PuTTY来完成这个任务,虽然用户界面简陋了点,但至少用着放心。
关于PuTTY的操作,有一点值得注意。以root用户身份登录服务器时,需要在命令行窗口里输入密码,然而vultr预先提供的密码极其复杂,因此最好采用粘贴的方法。在初次使用时,我习惯性的Ctrl+V,却发现毫无作用,右键菜单也没法弹出。查阅了一番之后,发现PuTTY默认的鼠标功能是简化版,只需要在命令行窗口里单击右键即可完成操作。如果非要用Windows版的交互方式,可以在Catagory-Selection-Action of mouse buttons里选择Windows模式。
3.部署 Shadowsocks
Shadowsocks 需要同时具备客户端和服务器端,所以它的安装也需要分两步。
上面这句话是照抄的参考教程。我感觉这句话说得真好,蕴含了搭建隧道的基本原理。
3.1部署Shadowsocks的服务器端
@秋水逸冰 前辈提供了一个简易脚本。很佩服这些无私分享,造福大众的前人们。
下面是需要在服务器上执行的命令,一共三条,每次输入一条。(ps:我对linux的基本命令也基本一窍不通,目前只有复制粘贴的水准,未来要好好努力)
wget --no-check-certificate -O shadowsocks-all.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-all.sh
chmod +x shadowsocks-all.sh
./shadowsocks-all.sh 2>&1 | tee shadowsocks-all.log
在最后一步,选择安装Shadowsocks-libev,这是目前唯一在持续更新且最为轻量的版本。
接下来是设置密码和连接的端口。这个需要自己记住,等下在pc端连接时就要靠它们。
至于加密方式,使用默认的aes-256-gcm
就好。其实我也不是很懂它们的区别...
然后是混淆工具,程序会提示是否要安装simple-obfs,原文是建议安装的。
但之后我在部署客户端的时候遇到了麻烦,从Shadowsocks官网下载的程序包里似乎没有插件,我还需要再单独下载并配置。后来在github上又看到有人说开了混淆后会影响网络速度,于是作罢。
(ps1:其实我也没比照过到底对网速有没有影响)
(ps2:在服务器上部署的时候,装不装加密插件都无所谓,反正只要客户端不使用加密,服务器端就不会启用这个插件)
(20200123后记:查阅了一些博文和帖子后发现,合理的加密和混淆搭配似乎可以有效地防范隧道被功夫网橄榄,而且试着开了混淆后,在youtube上仍然能流畅地观看720p50的视频,速度还可以接受)
3.2 检查和配置 Shadowsocks
通过这个命令可以查看Shadowsock的运行状态。
/etc/init.d/shadowsocks-libev status
如果有Shadowsocks-libev is running...
这种输出说明一切正常。
如果想要查看或者更改SS配置,可以输入下面的命令。
nano /etc/shadowsocks-libev/config.json
^X这种字符代表Ctrl+对应字母,如Ctrl+X。
值得注意的是,在更改配置后,需要重启SS服务才可以正常使用。
/etc/init.d/shadowsocks-libev restart
到这里,服务器端的配置基本就接近尾声了。通过此法配置的SS只支持单端口,不过我只是一个普通的个人用户,倒也无所谓。
话说回来,未来可能会搭建校园网免流隧道,也许到那时就需要学一下如何配置多端口的Shadowsocks了吧?
3.3部署Shadowsocks的客户端
小时候玩网络游戏的时候,总是“客户端”“客户端”地去说,有时候也会吐槽“服务器”太烂,但也没怎么多想。直到后来我才逐渐认识到“客户端”与“服务器”的对应性。
回到正题。在Shadowsocks官网里下载对应于当前操作系统的客户端,打开后,按照刚才在服务器上的配置,输入相关信息。
“代理端口”一栏1080即可。关于1080端口的更深层次的了解,我尚未透彻,也许我应该恶补一下互联网通讯原理之类的知识...
至于“便携模式”,勾上的话会把临时文件之类的写在程序所在目录,方便把程序装在u盘里面带着跑。没什么特殊需要的话,勾不勾其实无所谓。
到这里,客户端的配置基本就结束了。
4.开启BBR加速服务
根据参考教程,我们可以通过一些技术手段来实现连接和传输速度的提升。引用原文
TCP BBR 是 Google 于 2016 年发布的,一种避免网络拥塞的算法。目的是要尽量跑满带宽, 并且尽可能避免排队的情况。
说实话,对于实现原理,我也一头雾水,不过暂且这样操作吧!
这里又用到了@秋水逸冰 前辈的一键安装脚本,在服务器上执行以下命令。
wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh
不过vultr的服务器好像已经默认开启了这个服务...
可以用下面的两行命令检测运行状态。
uname -r
lsmod | grep bbr
如果输出的内核版本为 4.9 以上版本,且返回值有 tcp_bbr
模块的话,说明 bbr 已启动。
按照原文,隧道的搭建到这里就大功告成了。
5.自己遇到的一些小问题及解决方案
5.1 shadowsocks客户端未启用
这里纯粹是自己过于小白了...
SS的系统代理默认是禁用状态,配置完客户端并确定之后,需要在右下角托盘处右键图标,开启PAC模式或全局模式。
5.2 500 Internal Privoxy Error报错
这里应该是服务器防火墙的问题,外部的访问请求被拒绝了。
我建立博客用的是Wordpress,Linux系统用的是Ubuntu。在Ubuntu下,使用这行代码可以允许外部访问你想要的端口,由此解决这个报错问题。如果你用的是其他系统,可以查阅一下对应的防火墙操作命令。
sudo ufw allow 上面配置SS时所设置的端口号
(20200123后记:后来我用typecho重新搭了一个博客,操作系统也换成了CentOS,对应的代码应该是
firewall-cmd --zone=public --add-port=你想要的端口号/tcp --permanent # 开放你想要的端口
firewall-cmd --reload # 配置立即生效
)
之所以写这篇博文,一是为了帮助自己复习巩固知识,在总结与回顾的过程中,也意识到了自己有很多不懂不会的地方,日后要多多学习;二也是有一些纪念性质,毕竟自己也是第一次接触vps服务。
写着写着,自己也对这个博客有了一个初步定位——写一些“文绉绉”,比较正式的博文。至于日记性质的吐槽和随感,就交给知乎的想法区吧!
20200128:单独开了个独立页面记录日常吐槽&负能量。
推荐使用V2Ray搭配WS+TSL使用,用博客打掩护。我的就是这个配置,一直没被墙过。如果担心的话还可以用Torjan做后备,目前这个还是比较小众,作为备选还是比较保险。
打错了,是Trojan,https://github.com/trojan-gfw/trojan
啊,感谢指教!明后天抽时间尝试一下。祝您新年快乐!
您搭的这个梯子速度怎么样啊?
YouTube 2K无压力
是要刷一下IP吗,我搭了一个LA的简直不能用 TAT
不是很懂网络优化... 我是随便开了个机,然后直接霸王硬上弓的。
博主您好,我是从《E绅士里站访问教程——从注册账户到进入里站》认识了您,在兴趣的驱使下翻阅了您以前的博客,仿佛使我拨云雾见青天,对自己以前颓废死宅的生活进行了反思,因为我一直用的都是较为廉价的付费梯子,以前从未尝试过搭建网络隧道,写过日记(也坚持了2个月吧(汗)),但从未想过创建属于自己的网络博客。因此我总感觉有所空缺需要填补。因为是对方面一无所知的小白,而又在您的博客上看到了两种完全不同的搭建方法,从而产生了疑惑,进而向您提问:哪种搭建方法是比较稳定且速度较快的呢?
两种方法均已过时,但V2ray+ws+tls相对更加稳定。
感谢您的回复与建议
500 Internal Privoxy Error报错
刚刚搭起来还能用,然后就被墙了(悲
您的方法我试了试,还是上不了,请问有别的方法吗?
可以试试v2ray
Thanks
请问Vultr服务器要多少钱? 似乎挺贵的
最低5美刀/月。如果有时间精力折腾的话,可以找找更便宜的供应商。
大佬,请问你是在哪里买的域名?纯小白,无意冒犯