参考了网上的这篇教程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:单独开了个独立页面记录日常吐槽&负能量。

已有 7 条评论

  1. 推荐使用V2Ray搭配WS+TSL使用,用博客打掩护。我的就是这个配置,一直没被墙过。如果担心的话还可以用Torjan做后备,目前这个还是比较小众,作为备选还是比较保险。

    1. 打错了,是Trojan,https://github.com/trojan-gfw/trojan

    2. 啊,感谢指教!明后天抽时间尝试一下。祝您新年快乐!

  2. 您搭的这个梯子速度怎么样啊?

    1. YouTube 2K无压力

      1. 是要刷一下IP吗,我搭了一个LA的简直不能用 TAT

        1. 不是很懂网络优化... 我是随便开了个机,然后直接霸王硬上弓的。

添加新评论