有没有一种简单的方法可以让与本地服务器通信的本地计算机上的本地客户端认为它正在与互联网上的服务器通信?

有没有一种简单的方法可以让与本地服务器通信的本地计算机上的本地客户端认为它正在与互联网上的服务器通信?

我的 (Linux) 机器上运行着一个本地 (HTTP) 服务器(监听 127.0.0.1:port),还有一个作为客户端连接到该服务器的本地应用程序。服务器和客户端应用程序都是专有的,我只能更改它们的一些基本配置。我的设置一直运行良好,直到最近客户端应用程序更新。客户端应用程序现在似乎要求它连接的服务器必须“在互联网上”,因此它不允许连接到 127.0.0.1 和其他“类似本地”的地址,例如 10.0.*.* 和 192.168.*.*。

作为一种解决方法,我现在使用 ngrok 获取本地服务器的远程地址,客户端应用程序可以顺利地使用该地址。但是,运行 ngrok 并更新客户端应用程序的配置是一个手动/缓慢的过程,并且需要互联网连接并通过 ngrok 的服务器。

我想知道是否有办法“伪造”一个“类似互联网”的 IP 地址来直接解析到我的本地机器。

我研究过“动态 DNS”解决方案,但它们需要更改路由器配置,而我通常无法控制。

我的想法是,在我的本地机器上设置一些色情网站的“类似互联网”的 IP,使用某种“虚拟网络适配器”来“解析”到我的本地机器,但我不想花很多时间建立这样的设置。因此,问题是,有没有一种简单的方法可以做到这一点?

答案1

使用 iptables?

iptables -t nat  -I OUTPUT --src 0/0 --dst dest_ip -p tcp --dport 80 -j REDIRECT --to-ports 80

(但不确定链条)这实际上应该重定向 - 透明地 - 任何前往 dest_ip:80 的流量到 localhost:80。

des_ip 是任何能让应用程序正常运行的 ip。

答案2

您可以在服务器上添加一个“真实”IP 作为别名,即1.2.3.4/32尝试从客户端应用程序连接到此地址(如果它们在同一台计算机上)。如果您的客户端应用程序在不同的计算机上,请1.2.3.4/24对服务器和1.2.3.5/24客户端使用类似的地址,前提是它们都在同一个 LAN 中。这种类型的地址未在互联网中分配,因此您不会遇到任何连接问题。

答案3

您可以尝试使用不太知名的保留或不可路由范围内的 IP 地址,因为您的客户端-服务器应用程序的实现效果不佳。

參閱https://en.m.wikipedia.org/wiki/Reserved_IP_addresses

答案4

也许你可以使用互联网模拟器喜欢网络模拟。它模拟(提供虚假的)常见的互联网服务,因此程序认为它位于互联网上。例如,它用于在封闭安全的环境中分析恶意软件的网络行为,然后使用该程序诱使它相信它是互联网,而实际上它不是。

它看起来和你的场景一样,所以看看你是否可以使用它!

相关内容