我正在尝试使用 IP 表进行简单的重定向。基本上,我想要做的是,当我尝试从 IP 地址 192.100.1.105:80 执行 wget 或 curl 操作时,它会将我重定向到 192.100.1.64:8080。
我们最近在我们的基础设施中切换了 IP 地址,以便它们都是连续的,但我们的一些服务器管理员很难记住输入新的 IP。
答案1
正如 Iain 指出的那样,这看起来像是 DNS 的工作。
如果您想坚持使用,iptables 解决方案可能是这样的:
iptables -t nat -I PREROUTING -d 192.100.1.105 -p tcp --dport 80 -j DNAT --to 192.100.1.64:8080
iptables -t nat -I POSTROUTING -d 192.100.1.64 -j SNAT --to 192.100.1.105
第一条规则执行实际重定向,第二条规则屏蔽源 IP 地址,因此 192.100.1.64 将数据包返回到 192.168.1.105,因此连接实际上有效。请注意,所有数据包都将始终经过 192.168.1.105 - 这是低级 (TCP) 重定向。
更好的方法是在 192.100.1.105 上设置一个 Web 服务器,强制将 HTTP 重定向到 192.100.1.64:8080。这可能更好,因为它不会掩盖重定向,用户可能会(可能很慢)意识到这一点。此外,您只需处理 192.100.1.105 上的初始连接 - 其余的直接转到 192.100.1.64。
关于 IP - 您没有将 192.100.1.0/24 用作私有网络,对吗?它不是私有的。