使用shadowsocks搭建代理服务器

最近使用了阿里云的服务器搭建了一个代理服务器,记下了学习一下。

1. 安装shadowsocks

这一步比较简单,直接使用pip3安装即可

pip3 install shadowsocks

2. 编辑配置文件

需要新建一个配置文件,可以将配置文件放在etc目录下,在命令行中输入如下命令:

vim /etc/shadowsocks.json

在vim普通模式下,输入如下命令

:set paste

这样可以保证粘贴的正确性

然后复制如下内容到文件中

{ "server":"0.0.0.0", "server_port":50001, "local_port":1080, "password":"pwd", "timeout":600, "method":"aes-256-cfb" }

需要修改的内容包括:

password:修改一个可靠的密码server_port:修改对外端口server:表示可以连接到vpn的主机ipmethod:可以修改为其他协议

注意,对外端口需要在阿里云的安全组中添加对应的端口

3. 将shadowsocks加入系统守护进程

在shell中输入如下命令:

vim /etc/systemd/system/shadowsocks.service

复制以下内容到文件中

[Unit] Description=Shadowsocks [Service] TimeoutStartSec=0 ExecStart=/usr/local/bin/ssserver -c /etc/shadowsocks.json [Install] WantedBy=multi-user.target

注意需要将配置文件对应的位置修改正确。

如果不知道ssserver的位置,则可以通过which ssserver得到ssserver的具体位置

4. 启动shadowsocks服务

启动命令如下

#设置开机自启命令 systemctl enable shadowsocks #启动命令 systemctl start shadowsocks #查看状态命令 systemctl status shadowsocks #关闭服务 systemctl stop shadowsocks

5. 问题和解决方案

查看shadowsock的状态时,提示python代码错误

由于openssl 1.1.0中废弃了 EVP_CIPHER_CTX_cleanup() 函数而引入了 EVE_CIPHER_CTX_reset() 函数所导致的。解决方法为:

找到报错信息的对应文件,例如/usr/local/bin/python3.6/site-packages/shadowsocks/crypto/openssl.py搜索cleanup 替换为reset重启shadowsocks

outline客户端需要输入秘钥

需要编码的格式为 ss://method:password@hostname:port打开浏览器,在console中输入

console.log( "ss://" + btoa("method:password@hostname:port") )

需要将对应的项修改为正确的值