网络192.168.0.0/24中有两台主机:
192.168.0.15192.168.0.13还有一个从B到A的远程ssh隧道:
ssh -R 192.168.0.13:8080:192.168.0.15:8002 192.168.0.13 -N而且那条隧道也能用。
主机A运行在端口80上运行nginx的容器nginx。我想将流量从192.168.0.15:8002转发到nginx服务器。该怎么做呢?
所以,
如果有人用GET request发送curl 192.168.0.13:8080,他将从运行在容器中的192.168.0.15上的nginx获得响应。流动应是:
192.168.0.14 (for example) ---GET--> 192.168.0.13:8080
192.168.0.13 --(SSH TUNNEL)--> 192.168.0.15:8002
192.168.0.15:8002 -----------> 172.17.0.2:80 (nginx container)
172.17.0.2 ------------> 192.168.0.15
192.168.0.15 ------------> 192.168.0.13
192.168.0.13 ------------> 192.168.0.14我必须使用iptables我不能改变现有的隧道。
发布于 2018-10-14 08:23:04
您可以通过重定向扩展来实现这一点。
可以在主机A上使用以下命令将所有TCP连接的目的地从端口8002更改为端口80:
iptables -t nat -I PREROUTING -p tcp --dport 8002 -j REDIRECT --to-port 80如果希望重定向也适用于本地主机的连接,请添加
iptables -t nat -I OUTPUT -p tcp --dport 8002 -j REDIRECT --to-port 80https://serverfault.com/questions/935435
复制相似问题