如何解决iptables:将本地流量从本地重定向到远程端口
我的问题是:如何使用iptables将所有传入和传出流量从给定的本地端口(127.0.0.1:port)重定向到另一台主机的某个端口?
我在linux主机上有一个Android容器(anbox)。
Anbox创建一个网桥(容器的192.168.250.2-主机上的192.168.250.1),它将把Android容器的流量转发到运行Anbox的计算机所连接的网络。
Anbox的ifconfig输出:
x86_64:/ # ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope: Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:30 errors:0 dropped:0 overruns:0 frame:0
TX packets:30 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1548 TX bytes:1548
eth0 Link encap:Ethernet HWaddr 26:e8:ad:ef:c7:37
inet addr:192.168.250.2 Bcast:192.168.250.255 Mask:255.255.255.0
inet6 addr: fe80::24e8:adff:feef:c737/64 Scope: Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:493 errors:0 dropped:0 overruns:0 frame:0
TX packets:504 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:284033 TX bytes:141521
在主机上,我有一个侦听192.168.250.1:8085的Web服务器
如何将其转发到Anbox的127.0.0.1:8085?
换句话说,我想打开Anbox内部的浏览器,在地址栏中键入“ http://127.0.0.1:8085”,然后查看主机的Web服务器的响应。
我试图在Anbox中做到这一点:
x86_64:/ # echo "1" >/proc/sys/net/ipv4/ip_forward
x86_64:/ # sysctl -w net.ipv4.conf.all.route_localnet=1
x86_64:/ # iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
x86_64:/ # iiptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 8090 -j DNAT --to-destination 192.168.250.1
x86_64:/ # iptables -t nat -A INPUT -p tcp --sport 8090 -j SNAT --to-source 127.0.0.1
但是我重新选择了“拒绝连接”。
Anbox中的http://192.168.250.1:8085可以正常工作。
那么,我该怎么办? 非常感谢您的任何帮助。
解决方法
好吧,我终于做到了! 错误是我没有替换原始地址,主机的服务器尝试将响应数据包发送到127.0.0.1
因此,正确的解决方案是在来宾计算机(Anbox容器)上编写以下规则:
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
echo "1" >/proc/sys/net/ipv4/ip_forward
sysctl -w net.ipv4.conf.all.route_localnet=1
iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 8090 -j DNAT --to-destination 192.168.250.1
iptables -t nat -A INPUT -p tcp --sport 8090 -j SNAT --to-source 127.0.0.1
iptables -t nat -A POSTROUTING -p tcp --dport 8090 -j SNAT --to-source 192.168.250.2
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。