我的 node.js http 服务器似乎被 iptables 阻止了

我的 node.js http 服务器似乎被 iptables 阻止了

编辑:已解决...有一个硬件防火墙!

我在远程 Debian GNU/Linux 6.0.4(squeeze)服务器上安装了 node.js,并在端口 8866 上运行了这个 http 服务器。

var http = require('http');

http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
    console.log('Someone set up us the bomb');
}).listen(8866, "0.0.0.0");
console.log('Server running at http://0.0.0.0:8866/');

它似乎运行:

node server.js
root@pod:/var/www# Server running at http://0.0.0.0:8866/

但当我去http://213.159.xxx.xxx:8866什么都没显示,而且超时了。所以我想可能是我的端口被阻塞了,所以我开始摆弄 iptables、nmap 等……但它仍然无法运行。我会向你们展示一些重要的输出,也许你们可以告诉我通往正常工作的服务器的方法,我想我已经很接近了。

以下是服务器上 iptables -L 的结果:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:8866
fail2ban-ssh  tcp  --  anywhere             anywhere            multiport dports ssh
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:http-alt
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:8866

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:8866
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:8866

Chain fail2ban-ssh (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere

结果是nmap 213.159.xx.xxx -p 8866 -A

Starting Nmap 5.00 ( http://nmap.org ) at 2012-05-17 16:08 CEST
Someone set up us the bomb
Someone set up us the bomb
Someone set up us the bomb
Someone set up us the bomb
Interesting ports on pod (213.159.xx.xxx):
PORT     STATE SERVICE VERSION
8866/tcp open  unknown

我还将添加 netstat:

# netstat -pan | grep 88
tcp        0      0 0.0.0.0:8866            0.0.0.0:*               LISTEN      12468/node

这里出了什么问题?端口是否已关闭?它们是否仅接受本地域?或者是否存在 TCP/HTTP 问题?

答案1

来自OP:

解决了... 有一个硬件防火墙!

答案2

您的服务器上一切看上去都很好。

您需要从本地开始并向后工作。它是否从本地主机工作?从直接针对 IP 的本地计算机工作?同一网络上的另一台计算机?一跳之隔?

我们不知道您的客户端和服务器之间存在什么问题 - 很可能是某些设备挡住了路,您只需要找到它。

答案3

我认为“spt”在OUTPUT链中效果会更好;)

相关内容