搭建 Shadowsocks 服务
突然发现 Shadowsocks 已经不流行了(V2Ray),简单总结下。
环境信息如下:
- 服务端 Ubuntu 16.04
- 客户端 Ubuntu 18.04
- 浏览器 Chrome
创建云主机
推荐 VULTR 平台,新注册用户充值 25 美元送 50 美元,支持支付宝和微信支付。
云主机类型选择 3.5 美元/月的配置即可。
服务端安装配置
- 安装 Shadowsocks 服务端软件
~$ sudo apt install python-pip
~$ sudo pip install shadowsocks
~$ which ssserver
/usr/local/bin/ssserver
- 创建并编辑服务端配置文件
~$ sudo vi /etc/ss.json
{
"server": "0.0.0.0",
"server_port": 12345,
"password": "mypassword",
"timeout": 600,
"method": "aes-256-cfb"
}
- 创建 systemd 服务文件
~$ sudo vi /lib/systemd/system/sss.service
[Unit]
Description=sss
After=network.target
[Service]
EnvironmentFile=-/etc/default/sss
ExecStart=/usr/local/bin/ssserver -c /etc/ss.json
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartPreventExitStatus=255
Type=simple
[Install]
WantedBy=multi-user.target
- 启用服务
~$ sudo systemctl daemon-reload
~$ sudo systemctl enable sss
Created symlink from /etc/systemd/system/sss.service to /lib/systemd/system/sss.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/sss.service to /lib/systemd/system/sss.service.
~$ sudo systemctl start sss
客户端安装配置
- 安装 Shadowsocks 客户端软件
~$ sudo apt install python-pip
~$ sudo pip install git+https://github.com/shadowsocks/shadowsocks.git@2.9.1
Collecting git+https://github.com/shadowsocks/shadowsocks.git@2.9.1
Cloning https://github.com/shadowsocks/shadowsocks.git (to revision 2.9.1) to /tmp/pip-req-build-pq3rex5p
Installing collected packages: shadowsocks
Running setup.py install for shadowsocks ... done
Successfully installed shadowsocks-2.9.1
~$ which sslocal
/usr/local/bin/sslocal
注意:老版本 Shadowsocks 与新版本 openssl 存在兼容性问题,因此安装最新版本。
- 创建环境变量文件
~$ sudo vi /etc/default/ssc
SERVER=ss.example.com
PORT=12345
PASSWORD=mypassword
LOCAL_PORT=1080
ENCRYPT=aes-256-cfb
- 创建 systemd 服务文件
~$ sudo vi /lib/systemd/system/ssc.service
[Unit]
Description=ssc
After=network.target
[Service]
EnvironmentFile=-/etc/default/ssc
ExecStart=/usr/local/bin/sslocal -s ${SERVER} -p ${PORT} -k ${PASSWORD} -l ${LOCAL_PORT} -m ${ENCRYPT}
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartPreventExitStatus=255
Type=simple
[Install]
WantedBy=multi-user.target
- 启用服务
~$ sudo systemctl daemon-reload
~$ sudo systemctl enable ssc
Created symlink /etc/systemd/system/multi-user.target.wants/ssc.service → /lib/systemd/system/ssc.service.
~$ sudo systemctl start ssc
浏览器配置
- 安装 Proxy SwitchyOmega 插件
如果从 Chome 应用商店下载扩展的话,这一步比较尴尬,因为鸡和蛋的问题,可以从项目主页下载扩展,然后打开 Chrome 的插件管理页面
将下载的插件拖放到页面上即可进行安装。
- 打开 Proxy SwitchyOmega 插件配置页面
- 创建如下内容的
shadowsocks
profile
- 配置
auto switch
profile 如下:
其中匹配规则的下载地址为:https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt
TCP BBR
如果可能的话,建议在服务端系统上启用 TCP 的 BBR 拥塞控制算法,但 BBR 要到比较新的内核版本才有,如果要在 CentOS 上安装新的内核 rpm 包,可以参考 kernel.el7.x86_64.rpm 的脚本进行构建,或者访问 ELRepo下载已构建好的版本。
具体的配置方法,可以参考 [1]。
参考资料
[1] BBR 阻塞算法,真是黑科技
https://fiveyellowmice.com/posts/2016/12/bbr-congestion-algorithm-dark-science.html
[2] 深夜聊聊Bufferbloat以及TCP BBR
https://blog.csdn.net/dog250/article/details/54999332
最后修改于 2019-03-03