我确定这是非常无趣的,所以请原谅我.
我正在尝试在我的ubuntu 10.04的端口8080上运行node.js服务器.
我正在尝试在我的ubuntu 10.04的端口8080上运行node.js服务器.
这是服务器上iptables -L的结果:
Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
这是nmap -p 8080的结果(编辑了ip地址,因为所有内容都应该或者应该是全开的)
nmap 173.203.xxx.xxx -p 8080 -A Starting Nmap 5.00 ( http://nmap.org ) at 2011-05-19 22:52 PDT Interesting ports on xxx (173.203.xxx.xxx): PORT STATE SERVICE VERSION 8080/tcp closed http-proxy
为什么8080被视为封闭?
添加这个没有帮助:
iptables -A OUTPUT -p tcp --dport 8080 -j ACCEPT iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
我真的很困惑.
我会加上这个,万一它有所帮助,但我不知道
netstat -pan | grep 80 tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 16785/node tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 16471/apache2
我可以访问我在apache上运行80端口的常规网站,但是从外面无法访问node.js服务器.从服务器本身访问它可以正常工作.
所以我的问题是:我将如何调试这个?除了iptables阻止某些端口之外还有别的东西吗?我怎么知道它是什么?
任何帮助非常感谢!
感谢您添加最后一个netstat输出,它确实有帮助.您无法从外部访问node.js,因为它正在侦听localhost IP,即127.0.0.1.您需要将node.js配置为侦听0.0.0.0,以便它能够接受计算机所有IP上的连接.
原文链接:https://www.f2er.com/ubuntu/348887.htmlvar http = require('http'); http.createServer(function (req,res) { res.writeHead(200,{'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(8080,"0.0.0.0"); console.log('Server running at http://0.0.0.0:8080/');