我遇到了一个小问题:一个 Java 程序正在尝试连接到一个 IP 的 9001 端口。问题是我无法直接访问这个 IP。我可以用这种方式建立一个 ssh 隧道:
ssh -f user@<ip-intermediate-computer> -L 9001:<final-ip>:9001 -N
如您所见,ip-intermediate-computer是可以到达最终ip的计算机。我如何强制我的计算机询问localhost而不是final-ip?如果java程序询问localhost而不是final-ip,隧道会将请求转发到intermediate-computer,然后转发到真正的final-ip。
答案1
找到了解决方案:
iptables -t nat -A OUTPUT -p tcp -d 192.168.251.3 -j DNAT --to-destination 1.2.3.4