【发布时间】:2016-06-10 07:29:09
【问题描述】:
我有安装了 nodejs、mongodb 和 nginx 的 ubuntu 14.04 服务器版本。这一直工作到昨天。由于暴风雨,我的互联网中断了大约 8 个小时,在恢复后,nodejs 工作,mongo 工作,但任何连接到端口 80 的人都会得到ERR_CONNECTION_REFUSED。我试图切换监听端口只是为了看看会发生什么并得到相同的结果。我可以使用服务器的内部 IP,我仍然得到ERR_CONNECTION_REFUSED,但是通过 localhost 或 127.0.0.1 在服务器本身上通过 lynx 访问端口 80,应用程序运行良好。我也尝试过使用 apache 而不是 nginx,但它也不起作用。我完全禁用了我的 ufw,重新启动服务器,双重和三重检查配置。甚至 netstat 都说服务器正在侦听端口 80,nmap 扫描显示端口 80 已打开并正在侦听,但尝试连接它会得到ERR_CONNECTION_REFUSED
我不知道该怎么做,根据谷歌和堆栈溢出搜索结果,我是网络服务器历史上第一个不得不问这个问题的人,所以我在任何地方都找不到任何有用的东西。
提前致谢
UFW 状态
user@io# ufw status
Status: inactive
Nginx 状态
user@io# service nginx status
* nginx is running
Nginx 访问日志
user@io:/var/log/nginx# cat access.log
::1 - - [26/Feb/2016:16:04:23 -0600] "GET / HTTP/1.0" 200 7746 "-" "Lynx/2.8.8pre.4 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.12.23"
网络统计
user@io# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 977/mongod
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 23009/nginx
tcp 0 0 127.0.0.1:28017 0.0.0.0:* LISTEN 977/mongod
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 974/sshd
tcp 0 0 0.0.0.0:9561 0.0.0.0:* LISTEN 2083/node
tcp6 0 0 :::80 :::* LISTEN 23009/nginx
tcp6 0 0 :::22 :::* LISTEN 974/sshd
udp 0 0 0.0.0.0:27712 0.0.0.0:* 808/dhclient
udp 0 0 0.0.0.0:68 0.0.0.0:* 808/dhclient
udp6 0 0 :::52391 :::* 808/dhclient `
【问题讨论】:
-
不确定您的设置,但问题出在其他地方吗?你有带端口转发的路由器/防火墙吗?您的 IP 地址是静态的吗(一旦互联网重新上线,它就不可能被更新)?有点宽泛的问题。
-
IP地址是静态的,前面有防火墙,但是我通过将静态IP设置为1:1 NAT完全绕过防火墙排除了(所有端口转发无限制) ) 另外,如果它是外部防火墙,那么我应该能够通过其内部 IP 访问应用程序。但是,是的,当我发现服务器上的事情似乎无法正常工作时,我首先想到的是
-
我讨厌这些类型的问题,太多的变量,而且可能是一个简单的解决方案......经过几个小时的混乱。你有多少个网络接口?
-
好吧,如果我将 nginx 端口更改为 3000,那么端口 3000 会显示
ERR_CONNECTION_REFUSED,但端口 80 可以工作!如果 nginx 正在侦听端口 3000,则 nothign 应该在端口 80 -
实际上,如果它告诉它在 80 以外的任何端口上侦听,它在端口 80 上工作正常。这没有任何意义!和 apache 一样!
标签: apache http ubuntu nginx ubuntu-14.04