我可以设置端口转发来模拟端口和另一个 IP 地址吗?

我可以设置端口转发来模拟端口和另一个 IP 地址吗?

我正在运行一个专有的 Windows 应用程序,其功能类似于服务器。您安装该程序,然后它会通过端口 13083 进行广播。该程序基于 Web,因此完全通过浏览器访问。

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

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

我的理论是,这个专有的 Windows 应用程序正在查看主机请求,并且只有在看到“localhost”或“127.0.0.1”时才会做出反应。这很不幸,因为我真的很想从 LAN 上的另一台计算机访问同一个程序,而不必安装两次该程序。但由于我必须在第二台电脑上输入 192.168.1.133 才能到达那里,我想知道是否有一些魔法可以发出这个请求看起来像它要求的是别的东西。

我的问题:有没有办法配置我的路由器,以便 LAN 上另一台计算机对 192.168.1.133 的请求看起来就像它们正在尝试访问 127.0.0.1?或者这几乎是不可能的?我觉得这是不可能的,但还是想问一下。

答案1

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

我建议要么更改程序的设置,要么建立一个监听 192.169.1.133 的本地端口转发代理,将所有流量转发到 127.0.0.1。

您可以使用“socat”。

答案2

当它无法加载时,您会遇到什么行为——连接被拒绝、连接超时或 403 禁止页面?如果是前两种情况之一,则可能是这里的服务器软件正在设置一个专门绑定到 localhost (127.0.0.1) 的侦听套接字。您可以通过运行 netstat 来验证:

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。大多数软件包都允许您以某种方式配置监听地址;那些默认为仅本地主机的软件包往往会这样做,以确保您阅读配置文件(并希望阅读文档),因为通常还需要配置其他内容才能正确使用该软件。

答案3

该程序是否有配置文件?配置设置中应该有一个监听地址和端口。需要将 IP 更改为监听主机系统 IP,而不是 localhost 或 127.0.0.1 地址,因为如果设置了这些地址,则它们仅限于本地访问。

通过程序名称,我就能提供更详细的帮助。

干杯。

相关内容