Centos 6.4 Nodejs外部没有响应

时间:2015-09-03 00:08:31

标签: linux node.js ssh centos iptables

我是ssh和Centos 6.4的新手,我想在端口80上运行nodejs。但无法让它在外部工作。

当我输入netstat -anp | grep 8080时,我可以看到我的节点正在侦听。

tcp        0      0 0.0.0.0:8080                0.0.0.0:*                   LISTEN      7976/node

但它不是外在的。

我尝试将设置添加到iptables,结果再次相同。它不起作用。

[root@culturalinfluences ~]# iptables --list
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:http /* node.js port */
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:webcache /* node.js port */

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

这是我的nodejs

var port = 8080;
app.listen(port, "0.0.0.0" ,function() {
    console.log("Listening on " + port);
});

谢谢你们四个明白因为我真的很喜欢linux及其iptables系统。我相信像我这样的人会搜索同一个问题,我希望他们能从这个问题中找到答案。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

你有一个

REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

在您允许的“http”端口之前,因此永远不会达到这些规则。请将REJECT all规则移到列表底部。

此外,您可能希望在-n命令行上使用iptables来确保端口号正确,而不是80而不是8080