前段日子A-team
群里的师傅sunshine
,讲到了一个端口复用的方案,并发了几个工具,这里简单记录实践一下。
https://github.com/3gstudent/Homework-of-Go/blob/master/frsocks.go
监听本地的2333端口开启一个socks5代理。
./frsocks -sockstype fsocks -listen 2333
https://github.com/Pandentia/protoplex
这是一个协议复用的工具,比如命令可将本地9999端口的流量根据协议类型转到本地的2333和80端口。
注: 在实战环境中,先用protoplex进行分流,然后在进行重定向。
./protoplex --socks5 192.168.154.130:2333 --http 127.0.0.1:80 -b 192.168.154.130:9999
同时该工具还支持其他协议的分流,如:
SSH
HTTP
TLS (/ HTTPS)
OpenVPN
SOCKS4 / SOCKS5
将访问80的流量重定向到9999端口
sudo iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 9999
将本地80流量重定向到9999
netsh interface portproxy add v4tov4 listenport=80 listenaddress=192.168.154.129 connectport=9999 connectaddress=192.168.154.129
相关操作命令:
显示系统中的转发规则列表:
netsh interface portproxy show all
删除指定的端口转发规则:
netsh interface portproxy delete v4tov4 listenport=80 listenaddress=192.168.154.129
清除所有当前的端口转发规则:
netsh interface portproxy reset
站在巨人的肩膀上。
本文思路和工具都来自sunshine
,仅仅记录分享一下。