将对外部IP的请求重定向到本地IP

问题描述 投票:0回答:5

我正在开展我公司的一个项目。不幸的是,我们有一个应用程序丢失了源代码,它硬编码了我们外部服务器的 IP 地址。我们最近更改了服务器,并且需要更改应用程序尝试访问我们的数据库的位置。我真的不想重新发明轮子并重新制作应用程序......

我尝试使用路线命令,但没有骰子。

route -p [new server] mask 255.255.255.255 [old server] metric 50 if [interface]

我在新机器的 80 端口上设置了一个临时网络服务器,在机器的浏览器中输入旧的 IP 地址,并将所述路由添加到其表中,但它仍然访问旧服务器。

有任何帮助使路线命令工作,或合理的替代方案吗?例如:重定向软件、路由器技巧...等等。

  • 注意:我们尝试在我们的私有 DNS 服务器上使用反向名称查找,但也失败了。
networking redirect ip host ipv4
5个回答
4
投票

由于 IP 地址是硬编码在二进制文件中的,因此您可以通过 grep 查找它。它可能表示为四个字节。然后,您可以使用十六进制编辑器将其替换为新的 IP 地址。


2
投票

假设您在路由上某处有 iptables 防火墙,则可以使用 DNAT:

iptables -t nat -A PREROUTING -d [old server] -j DNAT --to-destination [new server]

具体在哪里运行它并不重要,只要它看到发往

[old server]
的数据包并且具有到
[new server]
的有效路由,因此可以在运行应用程序的主机、任何中间路由器或您的边缘防火墙。

当然,您始终可以编辑二进制文件本身内的地址....


0
投票

在您的防火墙/路由器中为该公共 IP 设置 NAT,以便它路由到您的新私有 IP。


0
投票

您不能像您提到的那样只添加到新服务器的路由,因为在第一个路由器跃点,数据包将被路由到旧服务器。

您可以将路由指向本地主机,将旧服务器添加为本地接口上的 IP 地址,然后编写代理服务器将请求转发到旧服务器。

IMO 的最佳选择是弄清楚如何解压缩二进制文件并对其进行十六进制编辑。你知道它是用什么语言写的吗?或者致电您的律师以取回源代码。 =)


-1
投票

使用hosts文件将所有对外部IP的请求路由到本地IP:http://en.wikipedia.org/wiki/Hosts_(file)

© www.soinside.com 2019 - 2024. All rights reserved.