我可以设置端口转发来模拟不只是一个端口,但另一个IP地址?

我运行一个专有的Windows应用程序,它的function就像一个服务器。 您安装程序,然后通过端口13083进行广播。该程序是基于Web的,因此它完全通过浏览器访问。

  • 如果我在地址栏中inputhttp://localhost:13083 ,程序将成功加载。 ✓
  • 如果我在地址栏中inputhttp://127.0.0.1:13083 ,程序将成功加载。 ✓
  • 如果我在地址栏中inputhttp://192.168.1.133:13083 ,程序不会加载。 ✗

(我的电脑在局域网上的IP地址是192.168.1.133。)

我的理论是,这个专有的Windows应用程序正在查看主机请求,只有当它看到“本地主机”或“127.0.0.1”。 这是不幸的,因为我真的想从局域网上的另一台计算机访问相同的程序,而不必安装程序两次。 但是因为我必须在第二台计算机上input192.168.1.133才能到达那里,所以我想知道是否有一些魔法可以使这个请求看起来像是在寻求别的东西。

我的问题:是否有一种方法来configuration我的路由器,以便从局域网上的另一台计算机的请求到192.168.1.133会使它看起来像他们试图访问127.0.0.1? 或者这几乎是不可能的? 我觉得这是不可能的,但仍然认为我会问。

这不是你的路由器的问题。 该程序正在监听127.0.0.1。 即使你的路由器伪造了127.0.0.1的IP地址,你的系统也会为了安全而丢弃数据包,因为127是本地主机的保留私有地址段。

我build议更改程序的设置,或者build立一个监听192.169.1.133的本地端口转发代理,将所有通信转发到127.0.0.1。

你可以使用“socat”。

什么行为,当它没有加载 – 连接被拒绝,连接超时,或403 Forbidden页面? 如果它是前两者中的一个,那么这里的服务器软件可能会设置一个专门绑定到本地主机(127.0.0.1)的侦听套接字。 您可以通过运行netstat来validation:

 C:\>netstat -na Active Connections Proto Local Address Foreign Address State TCP 0.0.0.0:445 0.0.0.0:0 LISTENING TCP 127.0.0.1:5152 0.0.0.0:0 LISTENING 

在这里,一些侦听端口5152的服务器只接受连接到环回地址(localhost)的连接,端口445上的服务器将侦听此机器上的所有NIC。 大多数软件包将允许您以某种方式configuration监听地址; 那些默认为localhost的用户往往会这样做,以确保您阅读configuration文件(希望能够获得文档),通常还需要configuration其他function才能正确使用该软件。

程序是否有configuration文件? 在configuration设置中应该有一个监听地址和端口。 IP将需要更改为监听主机系统IP,而不是本地主机或127.0.0.1地址,因为它们被限制为本地访问(如果已设置)。

随着程序名称,我将能够更详细地帮助。

干杯。