AWS EC2 Shadowsocks 手机搭梯子方法

2019.1.30 更新:


微软云:Microsoft Azure

操作系统:Ubuntu 18.04 LTS

位置:韩国

一、更新系统:

sudo -i && apt-get update -y && apt-get upgrade -y

二、开启BBR加速:

1、修改系统变量:

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

2、保存生效:

sysctl -p

3、查看内核是否已开启BBR:

sysctl net.ipv4.tcp_available_congestion_control

显示以下即已开启:

net.ipv4.tcp_available_congestion_control = reno cubic bbr

4、查看BBR是否启动:

lsmod | grep bbr

显示以下即启动成功:

tcp_bbr 20480 1

三、安装Shadowsocks:

1、安装:

apt-get install python-pip && pip install shadowsocks

2、修正错误:

系统 openssl 升级到1.1.0以上版本,导致 shadowsocks2.8.2 启动报「undefined symbol: EVP_CIPHER_CTX_cleanup」错误。原因是在openssl1.1.0版本中,废弃了 EVP_CIPHER_CTX_cleanup 函数,取而代之的是 EVP_CIPHER_CTX_reset 函数。

修改方法:修改 openssl.py 文件,将两处「EVP_CIPHER_CTX_cleanup」改为「EVP_CIPHER_CTX_reset」。分别位于52行和111行(shadowsocks2.8.2版本)。

vim /usr/local/lib/python2.7/dist-packages/shadowsocks/crypto/openssl.py

按 i 进入编辑模式。

52行:

libcrypto.EVP_CIPHER_CTX_cleanup.argtypes = (c_void_p,)

改为:

libcrypto.EVP_CIPHER_CTX_reset.argtypes = (c_void_p,)

111行:

libcrypto.EVP_CIPHER_CTX_cleanup(self._ctx)

改为:

libcrypto.EVP_CIPHER_CTX_reset(self._ctx)

保存并退出。

3、启动:

ssserver -p 443 -k password -m aes-256-cfb --user nobody -d start停止:

ssserver -d stop

查看日志:

less /var/log/shadowsocks.log

以下为旧文:


买了原生安卓的手机,自然要用Google的服务。试用过各种科学上网的方法,SSH转发和Shadowsocks比较好用,VPN一直没遇到稳定和快速的。注销了Linode VPS后就没法再用SSH,而Shadowsocks用的是别人的账号,速度不快,不明的服务器用着又不踏实。一直想自己建一个Shadowsocks服务。

AWS是亚马逊的云计算服务,EC2是其下虚拟服务器产品(等同于VPS),可免费使用一年,每个月可使用15G流量。在http://aws.amazon.com注册账号,绑定信用卡,切换地区为“亚太地区(东京)”,启动一个EC2实例。选择免费的ubuntu系统,继续选择默认的“t2.micro”类型,确认配置,输入一个密钥文件名称,生成pem密钥并下载,稍后使用这个密钥进行SSH登录。确定后Amazon EC2 VPS主机就创建成功了。

打开xshell,新建连接,主机填入分配给刚创建的实例的公有IP。用户身份验证方法选“Public Key”,用户名填入“ubuntu”,用户密钥点浏览,导入刚下载的pem密钥,密码为空,保存后SSH连接到主机。
sudo apt-get update
sudo apt-get install python-gevent python-pip supervisor
sudo pip install shadowsocks
sudo vim /etc/shadowsocks.json

按i开始键入,复制粘贴以下内容后按Esc,输入:wq回车。
{
"server":"0.0.0.0",
"server_port":8388,
"password":"连接密码",
"timeout":600,
"method":"aes-256-cfb"
}

再执行
sudo vim /etc/supervisor/conf.d/shadowsocks.conf
粘贴以下内容:
[program:shadowsocks]
command=ssserver -c /etc/shadowsocks.json
autorestart=true
user=nobody

再执行
sudo vim /etc/default/supervisor
在最后一行加入
ulimit -n 51200
然后执行
sudo service supervisor start
sudo supervisorctl reload

执行以下命令查看Shadowsocks状态,看到“RUNNING”即为成功。
sudo supervisorctl status shadowsocks

在Windows系统上安装Shadowsocks官方客户端,编辑服务器,填入刚才的账号信息。启用系统代理,先选全局模式,再开启“允许来自局域网的连接”,查看是否可访问墙外网站,在手机的WLAN设置中,选择同一的wifi,点修改-高级选项,代理选“手动”,代理服务器主机名输入Windows系统的内网ip,代理服务器端口填1080,保存。查看手机Play商店是否可用,如可用,在Play商店中安装“影梭”,再次设置Shadows账号信息,以后可脱离Windows的Shadowsocks代理,直接使用手机Shadowsocks服务。

经测试,AWS EC2 东京机房搭建的Shadowsocks速度令人满意。

发表评论

电子邮件地址不会被公开。 必填项已用*标注