Shadowsocks搭建过程(服务端)
链接扩展
shadowsocks
shadowsocks-windows
shadowsocks-libev
v2ray
vultr
安装shadowsocks-libev
shadowsocks的服务端也分python版本、go版本以及C语言写的shadowsocks-libev,因为libev版更新快,而且C语言编写的运行效率更高些,所以采用libev版。
安装预编译包
在shadowsocks-libev的github项目上有release预编译版本,可以直接安装(以目前的3.1.3版本为例):
1 | #下载预编译文件 |
编译源码安装
1 | git clone https://github.com/shadowsocks/shadowsocks-libev.git #下载源码 |
这样就装好了,shadowsocks-libev中常用的命令有
ss-server、ss-local、ss-redir、ss-tunnel等,
服务端只用ss-server。关于使用方法,可以man shadowsocks-libev或者man ss-server来查看,下面只会提到必要用法。
编辑配置文件
一般为了方便,会将shadowsocks设置的参数写成配置文件,配置文件为json格式,服务端可以使用的key如下:
key | 说明 |
---|---|
server | 服务器IP |
server_port | 服务端口 |
password | 密码 |
method | 加密算法 |
timeout | 超时 |
mode | 代理协议 |
服务器IP如果设为0.0.0.0则绑定所有IP;代理协议指的是代理TCP还是UDP,
至于加密算法,3.0以上版本的shadowsocks目前支持18种算法,但推荐使用以下支持AEAD加密的:
- chacha20-ietf-poly1305
- aes-256-gcm
- aes-192-gcm
- aes-128-gcm
至于原因可以参考这篇文章这里以我常用的配置文件为例:
1 | touch config.json #新建文件 |
config.json
1 | { |
配置文件为json格式,//后为注释,方便说明加的,实际配置文件里不能写注释(看那个红色就知道不能加)。
这里用的是在移动设备上性能相对效好的chacha20-ietf-poly1305。
因为只有shadowsocks-libev更新了AEAD加密,所以为了兼容可以改为chacha20等非AEAD加密算法。
运行shadowsocks-libev
1 | ss-server -c config.json |
可以看到服务在前台运行,-c后面接配置文件。若要后台运行,可以加上-f参数,后面接一个pid文件名,运行后会生成这个pid文件,里面保存着这个后台ss-server进程的pid。
1 | ss-server -c config.json -f proxy.pid |
如果想开多个端口,可以使用多个配置文件+多个pid文件的方式来管理。这样服务端就完成了。
文章摘自shino.space