好吧,我已经在这上面搜寻了几个小时,没有任何工作应该这样做,所以我必须做出错误的事情。 它在localhost:端口上工作正常,但我无法让它远程工作。
这是app.js
var http = require('http'); var express = require('express'); var app = express(); app.set('view engine', 'jade'); app.set('views', './views'); app.get('/', function(req, res) { res.render('index', {title: 'Welcome', message: 'Hello ExpressJS!'}); }); app.listen(3000); console.log('Running Express...');
这是我的端口fowardingconfiguration:
Name: HTTP Service Type: TCP External Starting Port: 80 External Ending Port: 80 Use the same port range for Internal Port: [Checked] Internal IP Address: 192.168.1.11 (This is the pc I want to use)
DNSconfiguration
Name: Blank Type: A TTL: 300 Target: My Ip Address Name: WWW Type: A TTL: 300 Target: My Ip Address
如果我使用www.mydomain.com,我什么也得不到,如果我使用我的IP地址,什么都没有。 我没有选中使用相同的内部端口,从端口转发,并进入3000,但它也没有做任何事情,不断导致错误。
我怎样才能让我的节点js服务器公开?
您的端口转发仅引用端口80,但您的服务器在端口3000上,所以端口转发永远不会进入您的服务器进程。 你有几个select来解决:
您可以将路由器IP上的端口80转发到192.168.1.11上的端口3000,然后您将访问公共IP地址上的端口80,并将传入的端口80stream量转发到服务器上的端口3000。
您可以将路由器IP上的端口3000转发到192.168.1.11上的端口3000,然后在公用IP地址上访问端口3000,并将传入端口3000的stream量转发到服务器上的端口3000。
您可以将路由器IP上的端口80转发到192.168.1.11上的端口80,然后您将访问公共IP地址上的端口80,并且将您的服务器更改为在端口80上运行,并将传入的端口80stream量转发到端口80在您的服务器上。
首先,担心使用公共IP地址工作。 然后,一旦这个工作,你可以testing/configuration你的DNS的公共IP地址的条目。
在Windows上需要考虑的其他事项:
在某些端口上可能还有其他服务器正在运行,因此您必须确保您不与现有的端口使用冲突。
Windows防火墙保护您的本地计算机可能需要configuration为允许传入连接到您的服务器(或者您可以暂时closures它,不build议保持closures状态)。