更新
1.3.0
1、加入srcip参数 优化端口复用逻辑 使用: ./buut -X -F -l 8080 --srcip 192.168.2.212
2、简化forward_addr参数 可以直接使用 -f 8080 默认就会转发到 127.0.0.1:8080
3、其它优化
端口复用参数用法
1、假设现在有一个web服务运行在8080端口,正常情况下直接监听8080是会报如下错误
buut.exe -F -l 8080
通常每个套接字地址(协议/网络地址/端口)只允许使用一次。 (os error 10048)2、现在使用 -X 参数设置SO_REUSEADDR则可以成功监听
buut.exe -X -F -l 8080
Agent Forward ID [SCrLfzxa] Listen On [tcp://0.0.0.0:8080]
3、使用SO_REUSEADDR能成功的前提是原服务也启用了SO_REUSEADDR。如果原服务没有启用SO_REUSEADDR则不能成功。这时候可以使用 --srcip参数设置源IP 通过转发来实现端口复用。
[root@localhost buut]# ./buut -X -F -l 32001
Address already in use (os error 98)
[root@localhost buut]# ./buut -X -F -l 32001 --srcip 192.168.2.122
Rule src:192.168.2.122 port:32001 redirect:32002 applied Succ!
Agent Forward ID [EJ1TROJd] Listen On [tcp://0.0.0.0:32002]
Rule src:192.168.2.122 port:32001 redirect:32002 Delete Succ!
4、客户端正常连接web端口
[root@localhost buut]# ./buut -F -s 123.151.152.153:32001
GET / HTTP/1.1
Upgrade: websocket
Origin: http://123.151.152.153:32001/
Sec-WebSocket-Version: 13
Connection: Upgrade
Sec-WebSocket-Key: ogq+DC9z2RVSsf86PpMizw==
Host: 123.151.152.153:32001
HTTP/1.1 101 Switching Protocols
Sec-Websocket-Accept: o99zKAbgLJAkj09CtFiz7MMFpVU=
Upgrade: websocket
Connection: upgrade
Server forward [tcp://123.151.152.153:32001] Connect Suss
Client [123.151.152.153:32001]-[172.16.16.12] Join [D212ts4C]
Agent ID [D212ts4C] Proxy Listen On [socks5://buut:buut@0.0.0.0:10086]