Shadowsocks 目前是众多梯子中非常出色的一款,本文记录一下 Shadowsocks-Libev 版在 Linux 系统下的安装步骤。

Shadowsocks 可以指:一种基于 Socks5 代理方式的加密传输协议,也可以指实现这个协议的各种开发包。当前包使用 Python、C、C++、C#、Go 语言等编程语言开发,大部分主要实现(iOS 平台的除外)采用 Apache 许可证、GPL、MIT 许可证等多种自由软件许可协议开放源代码。Shadowsocks 分为服务器端和客户端,在使用之前,需要先将服务器端部署到服务器上面,然后通过客户端连接并创建本地代理。
Wikipedia - Shadowsocks

Ubuntu 18.04

在新版系统中,官方软件源已经包含了 Shadowsocks-libev,所以一行命令即可安装。

$ sudo apt install shadowsocks-libev

之后直接开始配置端口和密码即可。

另外,Ubuntu 18.04 配置开机启动项的方法在这篇文章

「以下操作均在终端中执行」

首先安装必要组件

如果是 Debian/Ubuntu

$ sudo apt-get install --no-install-recommends gettext build-essential autoconf libtool libpcre3-dev asciidoc xmlto libev-dev libc-ares-dev automake

如果是 CentOS/Fedora/RHEL

$ sudo yum install gettext gcc autoconf libtool automake make asciidoc xmlto c-ares-devel libev-devel

然后安装加密组件安装

一行一行的复制粘贴执行就可以了。

$ export LIBSODIUM_VER=1.0.16
$ wget https://download.libsodium.org/libsodium/releases/libsodium-$LIBSODIUM_VER.tar.gz
$ tar xvf libsodium-$LIBSODIUM_VER.tar.gz
$ pushd libsodium-$LIBSODIUM_VER
$ ./configure --prefix=/usr && make
$ sudo make install
$ popd
$ sudo ldconfig

$ export MBEDTLS_VER=2.7.0
$ wget https://tls.mbed.org/download/mbedtls-$MBEDTLS_VER-gpl.tgz
$ tar xvf mbedtls-$MBEDTLS_VER-gpl.tgz
$ pushd mbedtls-$MBEDTLS_VER
$ make SHARED=1 CFLAGS=-fPIC
$ sudo make DESTDIR=/usr install
$ popd
$ sudo ldconfig

接下来编译安装

同样是一行一行地执行。

$ git clone https://github.com/shadowsocks/shadowsocks-libev.git
$ cd shadowsocks-libev
$ git submodule update --init --recursive
$ ./autogen.sh && ./configure && make
$ sudo make install

至此,Shadowsocks-Libev 的安装已经结束。

接下来设置端口密码加密方式

首先创建配置文件

$ mkdir /etc/shadowsocks-libev
$ touch /etc/shadowsocks-libev/config.json
$ nano /etc/shadowsocks-libev/config.json

如果提示 command not found,那就执行一下 sudo apt-get install nano,安装 nano 之后再次执行上面的最后一行代码。

然后将下列内容复制粘贴进去

{
    "server":["[::0]", "0.0.0.0"],
    "server_port": 这里换成你想要的端口,

    "password": "这里换成你想要的密码",
    "method": "这里换成你想要的加密方式",

    "timeout": 1800,
    "fast_open": true,
    "mode": "tcp_and_udp",
    "nameserver": "8.8.8.8",
    "ipv6_first": true,
    "no_delay": true
}

将上面的对应信息修改一下,只能替换中文文字,任何其他的字符包括引号都不要修改,加密方式有这些可选

aes-128-gcm, aes-192-gcm, aes-256-gcm, aes-128-cfb, aes-192-cfb, aes-256-cfb, aes-128-ctr, aes-192-ctr, aes-256-ctr, camellia-128-cfb, camellia-192-cfb, camellia-256-cfb, bf-cfb, chacha20-ietf-poly1305, xchacha20-ietf-poly1305, salsa20, chacha20, chacha20-ietf

这些加密方式随便选择一个就可以了,注意不要包含空格逗号,推荐这些 aes-256-cfb, aes-256-gcm, chacha20-ietf-poly1305

最后添加开机启动

打开 rc.local 文件

$ nano /etc/rc.local

将下列代码添加在 exit 0 之前的空行内

nohup ss-server -c /etc/shadowsocks-libev/config.json > /dev/null 2>&1 &

别忘了防火墙

如果是 Ubuntu(>=16)

$ sudo ufw allow 端口

如果是 CentOS(>=7)

$ sudo firewall-cmd --add-port=端口/tcp --permanent
$ sudo firewall-cmd --add-port=端口/udp --permanent
$ sudo firewall-cmd --reload

所有的工作都完成了!重启一下你的 VPS,在你的客户端上配置好,就可以开始使用了。