即使使用iptable打开端口8080仍然closures,并且nodejs正在侦听它

我试图安装一个nodejs服务器监听端口8080,我用iptable打开,但是当我运行nmap或一个web工具,我总是得到消息,端口被closures。 我在Ubuntu的vps。

首先,确保nodejs实际上在监听这样的端口:

sudo netstat -tpln Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:60613 0.0.0.0:* LISTEN 1097/sshd tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1215/mysqld tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 18843/nodejs tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 1375/master tcp6 0 0 :::60613 :::* LISTEN 1097/sshd tcp6 0 0 :::80 :::* LISTEN 1454/apache2 tcp6 0 0 :::25 :::* LISTEN 1375/master tcp6 0 0 :::443 :::* LISTEN 1454/apache2 

iptable的:

 sudo iptables -A INPUT -i lo -j ACCEPT sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 60613 -m state --state NEW -m recent --set sudo iptables -A INPUT -p tcp --dport 60613 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP sudo iptables -A INPUT -p tcp -m tcp --dport 60613 -j ACCEPT 

我们来检查一下iptable:

 sudo iptables -nvL Chain INPUT (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 3945 766K ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 67404 17M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED 3057 179K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 32 1488 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080 888 51392 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 3 180 tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:60613 state NEW recent: SET name: DEFAULT side: source mask: 255.255.255.255 0 0 DROP tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:60613 state NEW recent: UPDATE seconds: 60 hit_count: 4 name: DEFAULT side: source mask: 255.255.255.255 3 180 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:60613 7106 318K DROP all -- * * 0.0.0.0/0 0.0.0.0/0 Chain FORWARD (policy ACCEPT 0 packets, 0 bytes) pkts bytes target prot opt in out source destination Chain OUTPUT (policy ACCEPT 71509 packets, 60M bytes) pkts bytes target prot opt in out source destination 

但是8080端口仍然closures:

 sudo nmap MYSITE.org Starting Nmap 6.40 ( http://nmap.org ) at 2015-04-26 18:17 CEST Nmap scan report for MYSITE.org (XXX.XXX.XXX.XXX) Host is up (0.041s latency). rDNS record for XXX.XXX.XXX.XXX: MYSITE Not shown: 997 filtered ports PORT STATE SERVICE 80/tcp open http 443/tcp open https 8080/tcp closed http-proxy Nmap done: 1 IP address (1 host up) scanned in 85.14 seconds 

我在我的防火墙上遇到了一个问题,但是我也尝试了其他服务器和yougetsignal,但是该端口已closures。

  • 离线安装npm软件包
  • 厨师bash资源不作为指定的用户执行
  • 值得运行Nginx的我的Node.js应用程序的静态文件?
  • node.js,mongodb,redis,关于ubuntu在生产中的性能下降,RAM是免费的,CPU 100%
  • 具有SSL / TLS协议v1.2的Node.js
  • 关于如何在一个永远在使用的网站上运行维护的任何想法?
  • One Solution collect form web for “即使使用iptable打开端口8080仍然closures,并且nodejs正在侦听它”

    注意netstat输出中的行…

     tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 18843/nodejs 

    具体来说就是127.0.0.1:8080的本地地址。 这意味着nodejs只能监听localhost地址,所以只能接受来自同一台机器的连接。 我不知道(从我的头顶)如何configurationnodejs来监听来自其他机器的连接,但通常通过设置绑定哪个接口来控制。

    从阅读Hameedullah汗的答案Node.js是无法从外部IP在Ubuntu上看来,解决办法是改变参数listen listen(8080, "0.0.0.0")

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.