就个人看法来说,如果操作系统采用 Debian,无论是作为客户端还是服务端,使用 shadowsocks-libev 都是一种非常舒适流畅的体验。本文介绍如何在 Debian 系统中搭建 ss-libev 服务端。
注:以下的所有命令,都是针对 Debian 9 Stretch,并在 root 用户下执行的。
安装
添加stretch-backports
:
1 | sh -c 'printf "deb http://deb.debian.org/debian stretch-backports main" > /etc/apt/sources.list.d/stretch-backports.list' |
安装shadowsocks-libev
和simple-obfs
:
1 | apt -t stretch-backports install shadowsocks-libev simple-obfs -y |
配置
编辑配置文件:
1 | vim /etc/shadowsocks-libev/config-obfs.json |
/etc/shadowsocks-libev/config-obfs.json
1 | { |
接下来,编辑/etc/default/shadowsocks-libev
指定使用哪个配置文件,如下所示,更改了文件中CONFFILE
的值(改成了config-obfs.json
):
1 | vim /etc/default/shadowsocks-libev |
/etc/default/shadowsocks-libev
1 | # Defaults for shadowsocks initscript |
启动并检查
激活服务,以便开机自动启动:
1 | systemctl enable shadowsocks-libev |
启动服务:
1 | systemctl start shadowsocks-libev |
查看服务状态:
1 | systemctl status shadowsocks-libev |
至此,对服务端的部署配置愉快完成。
开启BBR
先检查 kernel 是否支持 BBR:
1 | uname -r # kernel >= 4.9 |
然后执行 lsmod | grep bbr
测试一下输出结果是否有bbr “bbr”.
1 | modprobe tcp_bbr |
最后执行
1 | echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf |
centos7客户端的配置
cd /etc/yum.repos.d/
curl -O https://copr.fedorainfracloud.org/coprs/librehat/shadowsocks/repo/epel-7/librehat-shadowsocks-epel-7.repo
yum install -y shadowsocks-libev
配置文件 cat /etc/shadowsocks-libev/config.json
{
"server":"0.0.0.0",
"server_port":port,
"local_port":1080,
"password":"password",
"timeout":60,
"method":"aes-256-gcm",
"mode":"tcp_and_udp"
}
对于配置客户端,完成以上几项配置就足够了。
如果想要变更默认的配置文件,或者提供其他命令行参数,我们可以修改/etc/sysconfig/shadowsocks-libev
:
# Configuration file
CONFFILE="/etc/shadowsocks-libev/config.json"
# Extra command line arguments
DAEMON_ARGS="-u"
其中CONFFILE
指定了_shadowsocks-libev_所读取的配置文件;DAEMON_ARGS
则指定了额外的命令行参数,此处的"-u"
表示启用 UDP 协议。
需要注意的是,命令行参数DAEMON_ARGS
比配置文件CONFFILE
中指定的选项优先级要更高一些。
启动 Shadowsocks 服务
有了 Shadowsocks 客户端的配置文件后,我们通过 systemd 启动 Shadowsocks 的客户端服务:
systemctl enable --now shadowsocks-libev-local
systemctl status shadowsocks-libev-local