看了一大堆网上的教程,感觉很多方法都有些缺陷,比如用 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。