在将端口从一台主机转发到另一台主机时维护源 IP,但有一个小问题

在将端口从一台主机转发到另一台主机时维护源 IP,但有一个小问题

我正在使用这种隧道方法:

https://superuser.com/a/1357450/972858

将端口 N 从 xxxx 转发到 yyyy 一切正常,目的地 yyyy 能够看到实际的源 IP 地址。但有一个小问题。xxxx:N 可以从任何地方访问,但不能从 yyyy 本身访问。我不知道为什么,但我无法从 yyyy 远程登录 xxxx:N

请帮忙。

答案1

这不起作用的原因与同一 LAN 内的端口转发通常不起作用的原因完全相同。换句话说,这是一种发夹式 NAT 情况。(想象一下隧道就像是一个本地 LAN 网络。)

隧道本身可能运行正常——数据包到达 X,经过 NAT,然后返回 Y。但是,由于 Y 认为原始发送者是当地的,响应不会经过 X,因此 X 无法撤消 NAT。结果,响应中的地址与原始数据包中的地址不匹配,并且 Y(作为原始发起者)无法为其刚收到的响应找到匹配的连接。

尝试-t nat -I PREROUTING -d x.x.x.x --dport N -j REDIRECT向 iptables 添加一条规则来处理这种情况 —— 它应该捕获传出的数据包而根本不需要涉及 X。

相关内容