chisel proxy
前面分别介绍了基于 chisel 的 正向 和 反向 代理,实际上 chisel 服务端支持同时指定 --socks5
和 --reverse
选项,而 chisel 客户端支持指定多个 remote
,因此可以将正向和反向代理集成在同一组 chisel 实例中,方案如下图所示:
注意:以下示例省略了认证信息的设置,具体的设置请参考 chisel --key
, --auth
, --fingerprint
等选项。
服务端
外网机器(IP 地址为 123.123.123.123)启动 chisel 服务端:
$ chisel server -v --port 80 --reverse --socks5
2019/09/20 14:12:37 server: SOCKS5 server enabled
2019/09/20 14:12:37 server: Reverse tunnelling enabled
2019/09/20 14:12:37 server: Fingerprint 60:2a:4a:aa:76:bb:48:f1:4b:10:70:a7:96:1e:15:7e
2019/09/20 14:12:37 server: Listening on 0.0.0.0:8000...
客户端
连接外网服务端:
$ chisel client -v 123.123.123.123:80 R:8022::8044 8033::socks
2019/09/20 14:17:16 client: Connecting to ws://123.123.123.123:80
2019/09/20 14:17:16 client: proxy#2:127.0.0.1:8033=>socks: Listening
2019/09/20 14:17:16 client: Handshaking...
2019/09/20 14:17:16 client: Fingerprint 60:2a:4a:aa:76:bb:48:f1:4b:10:70:a7:96:1e:15:7e
2019/09/20 14:17:16 client: Sending config
2019/09/20 14:17:16 client: Connected (Latency 1.292822ms)
同时在客户端节点启动 gost 代理:
$ gost -L localhost:8044
2019/09/20 14:17:43 route.go:479: auto://localhost:8044 on 127.0.0.1:8044
测试
此时在客户端节点以 :8033 作为 socks5 代理地址可以访问外网:
$ lsb_release -i
Distributor ID: Ubuntu
$ nc localhost 22
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3
$ nc -X 5 -x localhost:8033 localhost 22
SSH-2.0-OpenSSH_6.6.1
在服务端节点以 :8022 作为 socks5 代理地址可以访问内网:
$ lsb_release -i
Distributor ID: CentOS
$ nc localhost 22
SSH-2.0-OpenSSH_6.6.1
$ nc -4 --proxy-type socks5 --proxy localhost:8022 localhost 22
SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3
最后修改于 2019-09-21