看了一大堆网上的教程,感觉很多方法都有些缺陷,比如用 nohup 来运行 ss-server 之类。因此在这里提供一种操作简便且配置完成后基本一劳永逸的方案。
本方法在 Ubuntu Server 16.04 上测试通过。
2017-02-09 Update: Update to match shadowsocks-libev 3.0+ and systemd.
2015-08-28 Update: Due to a recent change, install from apt source.
以下所有命令在root权限下运行,文中不再使用 sudo 。
安装 shadowsocks-libev
从 apt 源安装(不推荐)
| 
					 1 2 3 4 5 6  | 
						apt update apt install wget wget -O- http://shadowsocks.org/debian/1D27208A.gpg | sudo apt-key add - echo "deb http://shadowsocks.org/debian wheezy main" > /etc/apt/sources.list.d/shadowsocks.list apt update apt install shadowsocks-libev  | 
					
或:从源代码安装
| 
					 1 2 3 4 5 6 7 8 9 10  | 
						apt update apt install --no-install-recommends gettext build-essential autoconf automake libtool gawk debhelper dh-systemd init-system-helpers pkg-config asciidoc xmlto libpcre3-dev libev-dev libudns-dev dh-autoreconf libmbedtls-dev libsodium-dev apg cd /usr/local/src rm *shadowsocks-libev*.{deb,changes} git clone https://github.com/shadowsocks/shadowsocks-libev.git --recursive cd shadowsocks-libev ./autogen.sh dpkg-buildpackage -b -us -uc -i cd .. dpkg -i *shadowsocks-libev*.deb  | 
					
建立配置文件
| 
					 1 2  | 
						mkdir /etc/shadowsocks-libev/ nano /etc/shadowsocks-libev/config.json  | 
					
填入配置文件内容:
| 
					 1 2 3 4 5 6 7 8 9 10 11  | 
						{     "server": "0.0.0.0",     "server_port": 8388,     "local_address": "127.0.0.1",     "local_port": 1080,     "password": "sample-password",     "timeout": 300,     "method":"aes-256-cfb",     "fast_open": false,     "workers": 1 }  | 
					
其中 8388 改成你需要的端口, sample-password 改成你需要的密码,其它基本不用修改。完成后依次按 Ctrl+X,y,回车保存文件。
测试连接
| 
					 1  | 
						ss-server -c /etc/shadowsocks-libev/config.json  | 
					
看到 server listening at port XXXX. 以后,使用你的 Shadowsocks 客户端连接上去,测试网络是否正常。成功的话,按 Ctrl+C 关闭 ss-server。
客户端配置如下:
- 服务器:填写你的服务器 IP 或域名
 - 服务器端口号:填写配置文件中的 server_port
 - 密码:填写配置文件中的 password
 - 连接超时:填写配置文件中的 timeout
 - 加密方式:填写配置文件中的 method
 - 本地端口号:随便填一个大于 1024 的端口一般都行,如果客户端默认有一个非 0 端口号的话就不需要改变原有设置了
 
自动启动服务器
| 
					 1 2  | 
						systemctl start shadowsocks-libev systemctl enable shadowsocks-libev  | 
					
源代码安装方式的更新
| 
					 1 2 3 4 5 6 7 8 9 10 11 12  | 
						cd /usr/local/src rm *shadowsocks-libev*.{deb,changes} cd shadowsocks-libev git pull git submodule update --init --recursive || (git submodule deinit -f .; git submodule init; git submodule update --recursive) apt update apt install --no-install-recommends gettext build-essential autoconf automake libtool gawk debhelper dh-systemd init-system-helpers pkg-config asciidoc xmlto libpcre3-dev libev-dev libudns-dev dh-autoreconf libmbedtls-dev libsodium-dev apg ./autogen.sh dpkg-buildpackage -b -us -uc -i cd .. dpkg -i *shadowsocks-libev*.deb systemctl restart shadowsocks-libev  | 
					
FAQ
APT提示找不到 mbedtls-dev 这个包说明你的系统太老了,该升级了。
安装完成 后续如何更新呢 要怎样操作 谢谢
 
做到“编译和安装”一部分完成运行一下下面那句就好了,文中已做修改
谢谢!可等到你回复了,太高兴了!我是看到shadowsocks-libev更新到2.1.2了,之前已按照你的方法编译安装好了,现在就想着更新下shadowsocks-libev,直接一步一步覆盖来重新编译安装?不需要卸载么?直接“sudo supervisorctl reload”的话,提示“sudo:supervisorctl: command not found” 这种编译安装好的软件怎样更新呢?我小白一个,还请大神指导下,谢谢!
你 supervisorctl 安装有问题或者 PATH 不对?参见 http://superuser.com/questions/709515/command-not-found-when-using-sudo 。
覆盖安装我已经很多次了,没有问题。
Pingback引用通告: 转载:如何在VPS上架设Shadowsocks | BREATHE FREELY
測試服務器失敗啊!
2019-09-30 10:40:21 ERROR: bind: Cannot assign requested address
2019-09-30 10:40:21 ERROR: failed to bind address
這是爲什麽啊!
server IP不对,或者端口已经被别的进程占用了。
SERVER IP 是填服务器给的ip吗?
一般填 0.0.0.0,如果服务器有多个 IP 并且只监听一个的话填那一个 IP。