“连接被拒绝”与“没有路由到主机”

“连接被拒绝”与“没有路由到主机”

我有一个在服务器上运行的 Apache 服务器:

[root@te-srv2 ~]# ps -ecf|grep httpd
root       698 32047 TS   19 10:45 pts/24   00:00:00 grep httpd
root     32081     1 TS   19 10:16 ?        00:00:00 /usr/sbin/httpd
apache   32083 32081 TS   19 10:16 ?        00:00:00 /usr/sbin/httpd
apache   32084 32081 TS   19 10:16 ?        00:00:00 /usr/sbin/httpd
....

但是,当我尝试连接到本地主机时,出现“连接被拒绝”的情况:

[root@te-srv2 ~]# wget http://127.0.0.1
--2014-02-24 10:46:16--  http://127.0.0.1/
Connecting to 127.0.0.1:80... failed: Connection refused.

当我尝试连接到本地 IP 地址时也会发生同样的情况:

[root@te-srv2 ~]# wget http://132.70.6.157
--2014-02-24 10:46:40--  http://132.70.6.157/
Connecting to 132.70.6.157:80... failed: Connection refused.

另一方面,当我从同一网络中的另一台计算机尝试执行相同操作时,我收到不同的错误“没有到主机的路由”:

[erelsgl@erel-biu ~]$ wget http://132.70.6.157
--2014-02-24 10:49:11--  http://132.70.6.157/
Connecting to 132.70.6.157:80... failed: No route to host.

为什么我会收到这些错误?我应该怎么做才能从同一台计算机和网络中的其他计算机连接到 http 服务器?

更新:根据评论和答复,以下是更多信息:

[root@te-srv2 ~]# traceroute 132.70.6.157
traceroute to 132.70.6.157 (132.70.6.157), 30 hops max, 60 byte packets
 1  te-srv2 (132.70.6.157)  0.082 ms  0.007 ms  0.005 ms

[erelsgl@erel-biu ~]$ traceroute 132.70.6.157
traceroute to 132.70.6.157 (132.70.6.157), 30 hops max, 60 byte packets
 1  te-srv2 (132.70.6.157)  0.446 ms !X  0.431 ms !X  0.420 ms !X

[root@te-srv2 ~]# netstat -lnp|grep http
tcp        0      0 :::443                      :::*                        LISTEN      5756/httpd          

答案1

显示 的输出netstat -lnp,这样我们可以看到哪些进程实际上在监听服务器上的哪些端口,以及它们绑定到哪些 IP 地址。

至于第二台计算机,它的网络连接似乎已经中断。netstat -rn将会对那里的问题提供一些见解。

为了提供更好的建议,需要有关两台计算机的一般网络配置和 IP 配置的更多详细信息。

编辑:

您必须更改 Apache 配置,使其成为 HTTP 服务器,而不是 SSL 服务器。配置文件大多数情况下位于 /etc/apache2 下。

还需要 IP 配置和网络配置信息来分析其他问题。traceroute 信息没有显示任何信息。

答案2

“连接被拒绝”表示目标计算机主动拒绝连接。以端口 80 为例,以下情况之一可能是原因:

  • 127.0.0.1:80 和 132.70.6.157:80 上没有任何监听
  • *:80 上没有任何内容正在监听
  • 防火墙正在阻止使用 REJECT 的连接

因此请检查您的 Apache 和 iptables 配置。

“没有到主机的路由”是指网络问题。不是来自目标机器的回复。

答案3

我发现这篇文章描述了我在公共云计算节点上尝试使用 nodejs 设置简单 http 页面时遇到的问题。

这个命令对我来说很管用:

iptables -F

此命令将刷新(即清除)Linux 系统内部设置的防火墙规则。

提醒:由于我使用的是公共云 VCN 中的分布式防火墙,因此我实际上并没有使用操作系统的防火墙。如果您没有外部防火墙,请确保在 iptables 中添加防火墙规则。

答案4

引用 Ron Maupin 的回答https://networkengineering.stackexchange.com/questions/33397/debugging-no-route-to-host-over-ethernet

ICMP 消息“无到主机的路由”表示 ARP 无法找到目标主机的第 2 层地址。通常,这意味着具有该 IP 地址的主机不在线或没有响应。

相关内容