Configure shadowsocks on fedora 26
Nathaniel LinSeptember 24, 20171 min read3 views

最近VPS打算从centos迁移到Fedora,这么一来就需要重新搭建Shadowsocks了,这里记录一下搭建的过程。
首先自然是安装Shadowsocks了,由于Shadowsocks是用Python写的,自然就用下面的安装方式了
pip install shadowsocks
然后创建shadowsocks的配置文件(路径可根据自己喜好放置)
vi /etc/shadowsocks.json
配置文件内容如下:
{ "server":"0.0.0.0", "server_port": 8888, "local_port": 1080, "password":"yourpassword", "timeout":600, "method":"aes-256-cfb" }
下面解释一下配置文件内容以及其意义:
Server项是你的server监听地址,0.0.0.0是ipv4的默认地址,::0为ipv6默认地址,同时监听ipv4和ipv6的话,根据shadowsocks-libv的一条issue,应该填写"server":["[::0]", "0.0.0.0"],我测试不能实现该功能,不过值得一试。
server_port是服务端监听的端口号,输入netstat -ntlp | grep LISTEN可以看到你现在监听的所有端口。
local_port是你的本地使用的端口,不要与其他程序冲突。
Timeout是超时时间,建议设置较长的时间。
Method是加密方式,服务端与客户端一致即可。
下面是基础的 开启、关闭、重启的操作方法:
ssserver -c /etc/shadowsocks.json -d start ssserver -d stop ssserver -c /etc/shadowsocks.json -d restart
常见问题
启动时可能会出现如下错误:
undefined symbol: EVP_CIPHER_CTX_cleanup
简单分析一下,是这个符号找不到了,仔细分析一下这个问题,发现是在openssl 1.1.0版本中,废弃了EVP_CIPHER_CTX_cleanup函数,使用EVP_CIPHER_CTX_reset函数替代了EVP_CIPHER_CTX_cleanup函数。因此,解决方案就明了了,使用reset代替cleanup即可。
即,打开最后层的报错的.py文件,使用vim的命令%s/cleanup/reset/g即可完成替换。