使用 Nginx 反代 Shadowsocks 流量
使用 Nginx 反代 Shadowsocks 流量
lololowe1. Why
阿里云有一台闲置的ECS服务器,一直没有使用,于是想到可以部署个Socks5代理来利用它。一开始选择了danted作为Socks服务器软件,但是需要单独为其放行代理端口,本着能用Nginx反向代理,就绝不多放行一个端口的原则,考虑了使用Nginx反代shadowsocks-libev + v2ray-plugin的HTTP流量来实现端口复用。之所以不直接用Nginx反代danted,是因为Nginx只能代理HTTP流量而不能代理Socks5流量,而v2ray-plugin被设计用来将shadowsocks-libev的Socks5流量混淆成HTTP流量,正好可以被Nginx反代。
2. How
2.1 服务端
安装服务端所需软件包:
1 | sudo apt update |
安装完成后使用 vim 编辑 /etc/shadowsocks-libev/config.json
文件,参考配置如下:
1 | { |
v2ray-plugin貌似不支持使用自签证书,尝试过相关证书选项,都不生效,因此这里使用acme.sh工具申请ssl证书,具体申请步骤参考我之前写的博客:https://blog.lololowe.com/posts/fdda/#1-%E4%B8%BA%E5%9F%9F%E5%90%8D%E7%94%B3%E8%AF%B7SSL%E8%AF%81%E4%B9%A6
申请到证书后再创建个Nginx Server块,引用证书并反代shadowsocks。使用vim编辑/etc/nginx/conf.d/ss.conf
,参考配置如下:
1 | server { |
2.2 客户端
- shadowsocks-windows客户端:https://github.com/shadowsocks/shadowsocks-windows/releases/download/4.4.1.0/Shadowsocks-4.4.1.0.zip
- v2ray-plugin插件:https://github.com/shadowsocks/v2ray-plugin/releases/download/v1.3.2/v2ray-plugin-windows-amd64-v1.3.2.tar.gz
下载上面2个文件并解压,再将插件重命名为v2ray-plugin并移动到shadowsocks目录,接着启动Shadowsocks客户端,参考下图添加自己的配置:
配置好客户端后点击应用生效,此时其他应用便可以使用 socks5://127.0.0.1:1080
代理上网了。
3. Deadpool
如果不想自行搭建Socks5代理的话,推荐使用开源工具Deadpool:https://github.com/thinkoaa/Deadpool
该工具可以利用360的quake api以及鹰图平台的hunter api自动从网上获取公开且可用的Socks5代理: