我正在使用这种隧道方法:
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。