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