Ubuntu环境安装Shadowsocks

本教程旨在提供简明的Ubuntu 16.04下安装服务器端Shadowsocks。不同于Ubuntu 16.04之前的教程,本文抛弃initd,转而使用Ubuntu 16.04支持的Systemd管理Shadowsocks的启动与停止,显得更为便捷。优化部分包括BBR、TCP Fast Open以及吞吐量优化。

本教程仅适用于Ubuntu 16.04及之后的版本,基于Python 3,支持IPv6。

安装pip

本教程使用Python 3为载体,因Python 3对应的包管理器pip3并未预装,首先安装pip3:Bash

sudo apt install python3-pip

安装Shadowsocks

因Shadowsocks作者不再维护pip中的Shadowsocks(定格在了2.8.2),我们使用下面的命令来安装最新版的Shadowsocks:Bash

pip3 install https://github.com/shadowsocks/shadowsocks/archive/master.zip

安装完成后可以使用下面这个命令查看Shadowsocks版本:Bash

sudo ssserver --version

目前会显示“Shadowsocks 3.0.0”。

创建配置文件

创建Shadowsocks配置文件所在文件夹:Bash

sudo mkdir /etc/shadowsocks

然后创建配置文件:Bash

sudo nano /etc/shadowsocks/config.json

复制粘贴如下内容(注意修改密码“password”):JSON

{
    "server":"::",
    "server_port":8388,
    "local_address": "127.0.0.1",
    "local_port":1080,
    "password":"mypassword",
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open": false
}

然后按Ctrl + O保存文件,Ctrl + X退出。

测试Shadowsocks配置

首先记录下服务器的IP地址Bash

ifconfig

找到IPv4地址(和IPv6地址),如我的ifconfig输出为

eth0      Link encap:Ethernet  HWaddr 46:91:89:4e:c1:52
          inet addr:138.68.51.55  Bcast:138.68.63.255  Mask:255.255.240.0
          inet6 addr: fe80::4491:89ff:fe4e:c152/64 Scope:Link
          inet6 addr: 2604:a880:2:d0::3727:7001/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:102667 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7869 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:151166937 (151.1 MB)  TX bytes:1151476 (1.1 MB)

所以我的IPv4地址是138.68.51.55,IPv6地址是2604:a880:2:d0::3727:7001

然后来测试下Shadowsocks能不能正常工作了:Bash

ssserver -c /etc/shadowsocks/config.json

在Shadowsocks客户端添加服务器,如果你使用的是我提供的那个配置文件的话,地址填写你的IPv4地址IPv6地址,端口号为8388,加密方法为aes-256-cfb,密码为你设置的密码。然后设置客户端使用全局模式,浏览器登录Google试试应该能直接打开了。

这时浏览器登录http://ip138.com/就会显示Shadowsocks服务器的IP啦!

测试完毕,按Ctrl + C关闭Shadowsocks。

配置Systemd管理Shadowsocks

新建Shadowsocks管理文件Bash

sudo nano /etc/systemd/system/shadowsocks-server.service

复制粘贴:

[Unit]
Description=Shadowsocks Server
After=network.target

[Service]
ExecStart=/usr/local/bin/ssserver -c /etc/shadowsocks/config.json
Restart=on-abort

[Install]
WantedBy=multi-user.target

Ctrl + O保存文件,Ctrl + X退出。

启动Shadowsocks:Bash

sudo systemctl start shadowsocks-server

设置开机启动Shadowsocks:Bash

sudo systemctl enable shadowsocks-server

至此,Shadowsock服务器端的基本配置已经全部完成了!