Fedora 26 配置 Shadowsocks

以及常见问题的解决

Posted by Nathaniel on 2017-09-25

Fedora 26 配置 Shadowsocks

最近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即可完成替换。

参考资料

http://blog.csdn.net/ppdouble/article/details/53066745

https://kionf.com/2016/12/15/errornote-ss/