0%

使用 docker 通过 ssh tunnel + shadowoscks 绕过我墙实现科学上网

缘由

可能由于科学上网次数过多,发现公司网络被重点照顾了,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