CentOS服务器Shadowsocks
在很久之前我用Windows时一直使用 SoftEther VPN 来访问外网,但现在已经转向了SS,而且仅是通过转发流量来科学上网的话,无疑SS是最合适的,因此在 hostwinds 上也买了一台centos7服务器准备搭建shadowsocks。
Shadowsocks官网: https://shadowsocks.org/en/index.html
Shadowsocks配置介绍: https://shadowsocks.org/en/config/quick-guide.html
Github:https://github.com/shadowsocks/
SS配置服务器
查看python版本
1 |
|
我的centos服务器默认没有安装Python Pip,同时可能还需要更新pip
1 |
|
之后就可以通过pip安装shadowsocks
1 |
|
到此SS服务端安装完成,接下来还需要json格式的配置文件
1 |
|
如果要从命令行来启动服务端,则可以
1 |
|
一般都是从配置文件来启动ss服务端
类似如下 config.json
1 |
|
使用配置文件启动服务端并在后台运行: ssserver -c config.json -d start
,检测是否成功启动
1 |
|
SS配置客户端
SS的客户端分为Windows,MacOS,Linux,Android,iOS和OpenWRT
这里介绍Windows,Linux
Linux
对于archlinux最直接的方法: sudo pacman -S shadowsocks-qt5
从GUI连接ss服务器
也可以从pip下载shadowsocks: pip install shadowsocks
,然后再创建一个同服务端的config.json配置文件如 sslocal -c config.json -d start
WIndows
Windows下的 ss客户端 也可以从Python pip安装 shadowsocks
。也可以从 https://github.com/shadowsocks/shadowsocks-windows/releases 下载
不过如果从pip下载 shadowsocks,那么是无法直接启动的,解决方法如下:
到 https://slproweb.com/products/Win32OpenSSL.html 下载最新版Windows openssl安装,然后去openssl安装目录 C:\Program Files\OpenSSL-Win64 找到 libcrypto-1_1-x64.dll
复制到 Python Scripts
目录并重命名为libcrypto.dll
。否则提示 libcrypto(OpenSSL) not found
错误。
完成以上时运行 sslocal -c config.json
会提示错误 AttributeError: function 'EVP_CIPHER_CTX_cleanup' not found
原因是 openssl1.1.0版本中,废弃了EVP_CIPHER_CTX_cleanup
函数,可以用 EVP_CIPHER_CTX_reset
函数替代EVP_CIPHER_CTX_cleanup
函数。
那么我们只需打开 C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Lib\site-packages\shadowsocks\crypto\openssl.py 文件(路径可能不同),将 EVP_CIPHER_CTX_cleanup
全部替换为 EVP_CIPHER_CTX_reset
,总共两处需要修改,之后保存即可。
执行 sslocal -c config.json
成功!
参考
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!