缘由
可能由于科学上网次数过多,发现公司网络被重点照顾了,v2ray和ssserver 都无法正常科学上网,所以想到了如下这个骚办法。
通过 SSH 隧道加上 ssserver 来达到绕过我墙对 ssserver 的封锁;为啥用 ssserver 呢,因为 ssserver 简单,好启动。
启动服务器
此处只监听127.0.0.1
避免被防火墙嗅探到外网端口。由于是使用ssh tunnel 访问,所以端口不对外也没有任何问题。
1 | docker run -d -p "127.0.0.1:8388:8388"-e "METHOD=xchacha20-ietf-poly1305" -e "PASSWORD=<password>" -e "SERVER_ADDR=0.0.0.0" -e "SERVER_PORT=8388" shadowsocks/shadowsocks-libev |
启动客户端
1. 启动端口转发
启动时指定名称为 ss-tunnel
,因为 ss 客户端 需要连接这个容器。
1 | docker run -d --name ss-tunnel -v /ssh/:/root/.ssh ssoor/ssh-tunnel ssh -CNTL 0.0.0.0:8388:127.0.0.1:8388 root@<SERVER_IP> |
2. 启动 SS 客户端
监听本地 1080 端口对外提供服务,--link ss-tunnel
表示要使用名称访问 ss-tunnel
容器 (ss-local -s ss-tunnel -p 8388
)
1 | docker run -d --link ss-tunnel -p 1080:1080 shadowsocks/shadowsocks-libev ss-local -s ss-tunnel -p 8388 -b 0.0.0.0 -l 1080 -m xchacha20-ietf-poly1305 -k <password> |
愉快的玩耍
现在可以设置 SOCKS5
代理 愉快的玩耍了。
比如使用GIT拉源码:
1 | HTTPS_PROXY=socks5://127.0.0.1:1080 git clone https://github.com/golang/go |