我目前有一台即将关闭的服务器。我有一个已部署的应用程序,不幸的是它通过 IP 连接到它。
如果我想在客户端计算机上运行脚本,以便它们对旧 IP 的传出请求转至新 IP,我该如何继续?
我正在寻找某种通过命令行的方法来指示本地计算机将传出流量发送到 ip_1 并将其发送到 ip_2。
无法修改应用程序,因此更改必须在应用程序外部进行。 (iptables?)我希望在客户端上推送启动脚本来运行 ip 路由命令。
(我们有一个域名来避免此类问题,但我们早期的一些部署不使用它。)
答案1
最简单的方法可能是使用 iptables NAT:
iptables -t nat -A OUTPUT -d old-ip -p tcp --dport some-port -j DNAT --to-destination new-ip
应该这样做。您可以使用任何普通的 iptables 选择器来匹配正确的流量;我选择了 IP 地址、协议 (tcp) 和端口。你肯定想尽可能地限制它;如果该 IP 地址的新所有者将其用作您依赖于客户端的其他服务怎么办?
除此之外,您需要建立某种隧道(基本上任何类型都可以),然后建立一个专用网络,您可以声明您想要的任何IP地址(在该专用网络上),无论互联网如何认为。特别是,您可以通过隧道路由旧的 IP 地址。如果它是一些奇怪的(非 TCP/UDP)协议,您无法轻松进行 NAT,我只会采用这种方法。