是否可以将所有呼叫重定向到 Internet 上的外部 IP 到 localhost(不使用主机)?
我有一个旧应用程序,但没有源代码,此应用程序尝试使用 IP 连接到 postgres 服务器
我可以指示 ubuntu 将对此外部 IP 的所有调用重定向到本地主机吗?
通过这种方式,我将能够在 localhost 上运行 postgres 服务器并使用我的应用程序。
注意:应用程序使用 IP,而不是 dns。
是否可以将所有呼叫重定向到 Internet 上的外部 IP 到 localhost(不使用主机)?
我有一个旧应用程序,但没有源代码,此应用程序尝试使用 IP 连接到 postgres 服务器
我可以指示 ubuntu 将对此外部 IP 的所有调用重定向到本地主机吗?
通过这种方式,我将能够在 localhost 上运行 postgres 服务器并使用我的应用程序。
注意:应用程序使用 IP,而不是 dns。
iptables是要走的路。
打破它
-t nat
允许您将 127.0.0.1 引用为有效目的地。-A OUTPUT
, 附加到OUTPUT
iptables 链。这是一个内置链。存在其他内置链,例如INPUT
,适用于传入数据包和PREPROCESSING
,适用于在任何其他内置链到达它们之前的所有传入数据包。您还可以制作自己的链并将它们附加到这些内置链之一,以便更好地管理您的设置。-d ${EXTERNAL_IP}
过滤通过 OUTPUT 链的数据包的目标 IP 地址。-j DNAT
将规则的目标设置为DNAT
,这允许您修改数据包的目标地址。--to-destination 127.0.0.1
是 DNAT 目标的参数,它指定对这些匹配数据包进行哪些更改。您还可以使用
--dports ${ORIGINAL_PORT_NUMBER}
after限制地址的重定向端口,-d ${EXTERNAL_IP}
并通过将端口附加到 127.0.0.1 让它们重新路由到特定端口,如下所示127.0.0.1:${FINAL_PORT_NUMBER}
。移动
使用以下内容从 iptables 中删除。
并检查 iptables 列表,
sudo iptables -t nat -L -n -v
其中-t nat
允许您查看 iptables 映射,包括与 NAT 相关的映射。进一步行动
如果您计划与应用程序通信并且应用程序检查源 IP 地址和端口,您可能还需要伪装或重定向来自您的 postgres 服务器的数据包以匹配外部 IP 地址和预期端口。
有关的