看了一大堆网上的教程,感觉很多方法都有些缺陷,比如用 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 源安装(不推荐)
|
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 |
或:从源代码安装
|
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 |
建立配置文件
|
mkdir /etc/shadowsocks-libev/ nano /etc/shadowsocks-libev/config.json |
填入配置文件内容:
|
{ "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,回车保存文件。
测试连接
|
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 端口号的话就不需要改变原有设置了
自动启动服务器
|
systemctl start shadowsocks-libev systemctl enable shadowsocks-libev |
源代码安装方式的更新
|
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。