EC2虚拟主机搭建SS
作为一个离开 Google 生活就无法自理的人类,我曾经发帖、提问、翻遍各种网站,四处寻找靠谱的科学上网利器。 网上也买过好多,自己也用过一些开源免费的proxy,最后都会出现各种莫名其妙的问题,各种不稳定。
最后我选择自己动手,丰衣足食,利用EC2虚拟主机搭建SS,这个东东是由 Clowwindy 开发的一款软件, 其作用本来是加密传输资料。当然,也正因为它加密传输资料的特性,使得XXX没法将由它传输的资料和其他普通资料区分开来, 也就不能干扰我们访问那些「不存在」的网站了。
如果你希望不花钱就能用上优质的服务──醒醒,别做梦了,免费和优质从来不可能划上等号。 不过想要共享或建立多账户来出售的话,能赚钱也说不定🙃
创建EC2虚拟主机
先去亚马逊AWS上面注册一个账号:https://amazonaws-china.com/cn/
登录后进入EC2的控制台,然后在右上角区域里面切换至东京, 选择左边的”实例” ——> 启动实例 ——> AWS Marketplace ——> 搜索”centos7”,目前最新的版本是CentOS7.4
然后点击”continue”,默认选中符合条件的免费套餐。
然后点击”审核和启动”,这里编辑一下安全组信息,创建一个新安全组,类型里面选择”所有流量”即可。
启动之后,回到实例的界面,然后点击”连接”,复制上面的实例名
然后用xshell工具来连接,主机名选择上面实例详情的名称,使用密钥对来登录,用户名选择centos即可。
部署SS
好了,现在开始正式部署ss了,这里使用 teddysun 的一键安装脚本。
先切换到root用户,可使用 sudo passwd root
先修改root密码,然后执行:
1 | wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh |
按照提示来,最后成功界面如下:
请把这些信息复制下来。
TCP Fast Open
实际上只要具备上述四个信息,你就可以在自己的任意设备上进行登录使用了。但是为了更好的连接速度,你还需要多做几步。
首先是打开 TCP Fast Open,vi /etc/rc.local
,在最后增加如下内容:
1 | echo 3 > /proc/sys/net/ipv4/tcp_fastopen |
然后修改/etc/sysctl.conf
,在最后增加如下内容:
1 | net.ipv4.tcp_fastopen = 3 |
再打开一个 Shadowsocks 配置文件,编辑/etc/shadowsocks.json
,修改如下:
1 | "fast_open":true |
最后,输入以下命令重启 Shadowsocks:
1 | /etc/init.d/shadowsocks restart |
安装SS客户端
相比服务器端的安装,客户端的安装就简单了许多。首先,根据操作系统下载相应的客户端。
打开客户端,在「服务器设定」里新增服务器。然后依次填入服务器 IP、服务器端口、你设的密码和加密方式。
然后点击”启用系统代理”,选择PAC模式,在PAC中选择从xxx更新本地PAC,就可以实现科学上网了。
开启BBR加速
可以起到单边加速TCP连接的效果。
Google提交到Linux主线并发表在ACM queue期刊上的TCP-BBR拥塞控制算法。继承了Google”先在生产环境上部署,再开源和发论文”的研究传统。 TCP-BBR已经再YouTube服务器和Google跨数据中心的内部广域网(B4)上部署。由此可见出该算法的前途。
TCP-BBR的目标就是最大化利用网络上瓶颈链路的带宽。一条网络链路就像一条水管,要想最大化利用这条水管,最好的办法就是给这跟水管灌满水。
BBR解决了两个问题:
- 在有一定丢包率的网络链路上充分利用带宽。非常适合高延迟,高带宽的网络链路。
- 降低网络链路上的buffer占用率,从而降低延迟。非常适合慢速接入网络的用户。 Google 在 2016年9月份开源了他们的优化网络拥堵算法BBR,最新版本的 Linux内核(4.9-rc8)中已经集成了该算法。
对于TCP单边加速,并非所有人都很熟悉,不过有另外一个大名鼎鼎的商业软件”锐速”,相信很多人都清楚。 特别是对于使用国外服务器或者VPS的人来说,效果更佳。
BBR项目地址:
1 | https://github.com/google/bbr |
升级内核,第一步首先是升级内核到支持BBR的版本:
1.yum更新系统版本:
1 | yum update |
2.查看系统版本:
1 | [centos@ip-172-31-23-1 ~]$ cat /etc/redhat-release |
3.安装elrepo并升级内核:
1 | [root@ip-172-31-23-1 ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org |
4.更新grub文件并重启系统:
1 | [root@ip-172-31-23-1 ~]# egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \' |
5.重启完成后查看内核是否已更换为4.xx版本:
1 | [centos@ip-172-31-23-1 ~]$ uname -r |
6.开启bbr:
1 | vim /etc/sysctl.conf # 在文件末尾添加如下内容 |
7.加载系统参数:
1 | [root@ip-172-31-23-1 ~]# sysctl -p |
输出了我们添加的那两行配置代表正常。
8.确定bbr已经成功开启:
1 | [root@ip-172-31-23-1 ~]# sysctl net.ipv4.tcp_available_congestion_control |
输出内容如上,则表示bbr已经成功开启。
参考文章
备注
2018年12月更新,由于我的私钥弄丢了,登录不上EC2主机,所以重新创建了一个实例,选了CentOS7.5,并使用了BBR加速。 所以创建EC2的时候私钥千万一定要自己保存好啊。