首先实现讲本地流量转发远程指定的网段
- 将本地的子网 192.168.3.1/24 和 10.172.0.12/24 转发到远程主机 172.16.37.208 的端口 5004。
- 远程主机必须是访问通过的主机 IP
实现方式
sshuttle -r [email protected]:5004 192.168.3.1/24 10.172.0.12/24
原理
- 使用 ssh 隧道将 127.0.0.1:12300 流量转转发到172.16.37.208:5004
- 使用 iptable 或者 pfctl 将通过代理 将子网 192.168.3.1/24 和 10.172.0.12/24转到 127.0.0.1:12300
实验验证
- 下载 shuttle 源码
git clone https://github.com/sshuttle/sshuttle.git
cd sshuttle
python __main__.py -r [email protected]:5004 192.168.3.1/24 10.172.0.12/24 -v
- 查看输出日志
核心代码
- 监听服务 sshuttle/client.py:934 MultiListener
- 转发流量设置 sshuttle/firewall.py:298 method.setup_firewall