端口转发不适用于 Nodejs 应用程序
Port forwarding not working for Nodejs application
我是 运行 我在端口 9000 上的 Nodejs 应用程序。我希望可以从 public IP 地址访问该应用程序。
我去了我的路由器配置并做了:
我的 Nodejs 应用程序在 localhost:9000 上仍然是 运行,但是当我转到
mypublicipaddress:9000
我知道这个网站无法访问。
我也试过 netsh 命令:
netsh interface portproxy add v4tov4 listenport=9000 connectport=9000 connectaddress=192.168.1.12
这没有抛出任何错误消息,但这也不起作用。
I went to my router config and did: [...]
My Nodejs application is still running on localhost:9000
这意味着您已将 Node.js 服务器绑定到计算机上的环回接口,并试图从路由器访问它,这是不可能的。尝试将服务器绑定到路由器可访问的 IP 地址或将其绑定到本地计算机上的所有 IP 地址(即 0.0.0.0
或 ::
)。
例如:
const http = require('http');
const server = http.createServer((req, res) => { res.end('It works') });
server.listen(9000, '0.0.0.0');
至于 netsh 命令,我认为您还应该将 listenaddress
设置为您网络上的机器地址(或 0.0.0.0
)。此外,connectaddress
必须设置为 127.0.0.1
:
netsh interface portproxy add v4tov4 listenport=9000 connectport=9000 connectaddress=127.0.0.1 listenaddress=192.168.1.12
我是 运行 我在端口 9000 上的 Nodejs 应用程序。我希望可以从 public IP 地址访问该应用程序。
我去了我的路由器配置并做了:
我的 Nodejs 应用程序在 localhost:9000 上仍然是 运行,但是当我转到
mypublicipaddress:9000
我知道这个网站无法访问。
我也试过 netsh 命令:
netsh interface portproxy add v4tov4 listenport=9000 connectport=9000 connectaddress=192.168.1.12
这没有抛出任何错误消息,但这也不起作用。
I went to my router config and did: [...]
My Nodejs application is still running on localhost:9000
这意味着您已将 Node.js 服务器绑定到计算机上的环回接口,并试图从路由器访问它,这是不可能的。尝试将服务器绑定到路由器可访问的 IP 地址或将其绑定到本地计算机上的所有 IP 地址(即 0.0.0.0
或 ::
)。
例如:
const http = require('http');
const server = http.createServer((req, res) => { res.end('It works') });
server.listen(9000, '0.0.0.0');
至于 netsh 命令,我认为您还应该将 listenaddress
设置为您网络上的机器地址(或 0.0.0.0
)。此外,connectaddress
必须设置为 127.0.0.1
:
netsh interface portproxy add v4tov4 listenport=9000 connectport=9000 connectaddress=127.0.0.1 listenaddress=192.168.1.12