我有一个在服务器上运行的 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 地址的主机不在线或没有响应。