CentOS 7和8下搭建shadowsocks-libev

CentOS 7和8下搭建shadowsocks-libev

安装shadowsocks-libev

1
2
cd /etc/yum.repos.d/
curl -O https://copr.fedorainfracloud.org/coprs/librehat/shadowsocks/repo/epel-7/librehat-shadowsocks-epel-7.repo

源路径在CentOS7和8下不同,如下:

1
2
3
4
# CentOS7
URL=https://copr.fedorainfracloud.org/coprs/outman/shadowsocks-libev/repo/epel-7/outman-shadowsocks-libev-epel-7.repo
# CentOS8
URL=https://copr.fedorainfracloud.org/coprs/outman/shadowsocks-libev/repo/epel-8/outman-shadowsocks-libev-epel-8.repo

安装

1
2
3
4
yum update
yum install -y epel-release
yum install -y libsodium shadowsocks-libev simple-obfs
yum install -y shadowsocks-libev

配置ss

打开/etc/shadowsocks-libev/config.json,如果不存在该文件则需要新建。

配置对应的参数:

  • server:当前自己的服务器的地址
    比如:0.0.0.0

  • server_port:ss服务的端口
    一般要大于1024,小于65536,可以随意取值,只要不和其他端口冲突即可
    比如:21500

  • password:ss客户端使用ss时要使用的密码
    最好设置一个复杂但安全的密码,例如:Ci20s5a6y96F

  • method:加密方式
    以前常见的方式是:aes-256-cfb
    最新更加复杂但更安全的是:chacha20-ietf-poly1305
    注意: 需要ss客户端要支持该加密方式才能正常使用ss服务

  • timeout:超时时间,单位:秒
    比如:300

  • mode:ss服务的模式
    比如:tcp_and_udp,即支持tcp也支持udp

示例:

1
2
3
4
5
6
7
8
{
"server": "0.0.0.0",
"server_port": 21500,
"password": "Ci20s5a6y96F",
"method": "chacha20-ietf-poly1305",
"timeout": 300,
"mode": "tcp_and_udp"
}

防火墙上打开端口

1
2
firewall-cmd --permanent --add-port=xxxx/tcp
firewall-cmd --reload

启动shadowsocks-libev

启动:

1
systemctl restart shadowsocks-libev

开机启动:

1
systemctl enable shadowsocks-libev

生成复杂但安全的密码

http://ucdok.com/project/generate_password.html

Debug

查看服务状态

1
systemctl status shadowsocks-libev

查看日志

1
journalctl -u shadowsocks-libev

查看端口是否启动

1
netstat -tnlp | grep xxxx

实现shadowsocks-libev多用户

新建另外一个配置文件,比如:

1
/etc/shadowsocks-libev/config2.json

内容和之前一致,只是端口号server_port和密码password改了一下即可:

1
2
3
4
5
6
7
8
{
"server": "0.0.0.0",
"server_port": 21501,
"password": "passowrd2",
"method": "aes-256-cfb",
"timeout": 300,
"mode": "tcp_and_udp"
}

注意: 端口号不要和系统中其他服务的端口号冲突了。

另外再去用:

1
setsid ss-server -c /etc/shadowsocks-libev/config2.json -u

启用新端口对应的ss服务。