为特定端口

时间:2018-01-05 09:23:55

标签: linux proxy iptables mitmproxy transparentproxy

我想从HostA捕获HTTP服务调用 - > HostB在HostA上测试客户端。两个操作系统都是Linux。我试过跟随但失败了。 建议的方法是什么?

我想使用透明代理模式,因为我无法修改客户端,也无法将所有来自HostA的流量重定向到hostB,因为其他服务也在HostA上运行。我只想将客户端的连接从主机A重定向到主机B. 主机A中的客户端通过HTTP调用某个端口10001上的主机B上的服务。

我尝试使用mitmproxy设置HostC(HostA和HostC在同一子网中) HostA(ip_A) - > HostC(ip_C)与mitmproxy-> HostB(ip_B),我设置ip表来构建透明模式。

以下是我在HostA上设置的内容

sudo iptables -t mangle -I OUTPUT -p tcp --dport 10001 -j MARK --set-mark 1
sudo ip route add default via ip_C table 100
sudo ip rule add fwmark 0x1 table 100

在HostC上

sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A PREROUTING -o eth0 -p tcp --dport 10001 -j REDIRECT --to-port 8080
mitmproxy -T --host

这不起作用。客户端在HostA连接超时。 如果我在HostA上尝试traceroute

traceroute ip_B -p 10000 -T

它显示来自HostA的TCP无法访问ip_B

我也尝试在HostA上设置mitmproxy,但是当我尝试重定向端口10001的流量时 在HostA上

sudo iptables -t nat -A OUTPUT -p tcp --dport 10001 -j REDIRECT --to-port 8080
mitmproxy -T --host

服务调用可以通过HostA上的mitmproxy捕获,但无法获得响应。

非常感谢你的帮助。

0 个答案:

没有答案