我最近在虚拟机上安装了 RHEL 5。服务器设置为使用静态 IP,我在网络配置 GUI 中配置了该 IP。只设置了名为 eth0 的以太网接口,该接口设置为在启动时激活。重新启动 Linux 后,我去检查以确保它确实已激活,但事实并非如此,所以我手动激活了该设备。
进入命令行,我尝试:
- 连接 google.com 但数据包丢失率为 100%。
- 对服务器用于网关的路由器的 IP 地址进行 ping 操作(在网络配置管理器中设置),结果显示数据包丢失率为 0%。
- 我尝试 ping 服务器本身的 IP 地址,结果再次显示数据包丢失率为 0%。
但是,如果我尝试打开 Firefox 并导航到某个网站,什么也不会出现。有什么建议吗?
更新 1:当我 ping www.google.com 时,没有收到“未知主机”的提示,因此 DNS 应该没有问题。
按照 Matt 的建议,我发出了命令 route -n 并得到了以下输出:
> 内核 IP 路由表 目标网关 Genmask 标志 指标参考使用 Iface 10.XX0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 0.0.0.0 10.XX1 0.0.0.0 UG 0 0 0 eth0
更新2:发出命令后:
traceroute -n www.google.com
我看到了 #1 和 #2 的 IP 地址,但其余的 IP 地址上有三个星号。另外,我甚至无法使用 telnet 命令连接到 www.google.com。因此,看起来网络防火墙很可能是导致问题的原因。我想这就是我能提供的所有信息,直到我能确认问题是否确实是防火墙造成的。
答案1
当你 ping google.com 时,它解析了吗?换句话说,它是否显示
msimmons@newcastle:~$ ping google.com
PING google.com (74.125.127.100) 56(84) bytes of data.
或者说
ping: unknown host google.com
假设是第一个,则您的 DNS 没有问题。此时,让我们查看路由:
这是我的:
msimmons@newcastle:~$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.x.x.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 10.x.x.1 0.0.0.0 UG 0 0 0 eth0
因为我在内部网络上,所以发往 10.xx0/24(/24 来自“genmask”列)的所有数据都会从本地以太网卡发出。
其余所有 (0.0.0.0/0) 都发往 10.xx1,我的网关。我猜想您的网关上可能没有这行或这行乱了。
如果您的网络配置相对简单,并且缺少该行,则可以以 root 身份发出此命令:
# route add default gw 10.x.x.1
其中 10.xx1 是您的默认网关。
编辑
好的,根据新信息,您的路由似乎没有问题。您正在 ping 的服务器位于哪里?在本地网段,还是远程?
无论如何,让我们看看连接在哪里中断:
traceroute -n www.google.com
您很有可能至少会从网关 10.xx1 收到响应。超过该值则表示网关正在将流量路由给您。如果您没有收到响应,则可能表明网络防火墙导致了问题。
当然,您仍然有可能收到流量,但您的网关正在过滤 ICMP 数据包。尝试远程登录到 Google 并假装是 Web 浏览器将是诊断方法:
msimmons@newcastle:~$ telnet www.google.com 80
Trying 66.102.1.104...
Connected to www.l.google.com.
Escape character is '^]'.
GET / HTTP/1.0
HTTP/1.0 200 OK
Date: Mon, 10 Aug 2009 19:20:19 GMT
Expires: -1
Cache-Control: private, max-age=0
...
您输入“GET / HTTP/1.0”然后按两次回车键...但实际上,如果您得到了“连接到...”部分,那么您可能很好。
尝试后立即更新!
答案2
我马上想到了两件事:
DNS:
DNS 是否正常工作?您能 ping 通 www.google.com 的 IP 吗?如果 www.google.com 未解析 IP,则 DNS 设置不正确。
运行“cat /etc/resolv.conf”,并确保你的 DNS 服务器已列出,如果没有,请使用以下命令配置 resolv.conf这些说明。
默认网关:
如果 DNS 正常工作,但您无法 ping 通 www.google.com,则可能没有设置默认网关,并且只能 ping 通网络上的内容。
要添加默认网关,请在 /etc/sysconfig/network 中添加类似 GATEWAY=192.168.1.1 的行,然后使用以下命令重新启动网络:
/etc/init.d/networking restart
答案3
修复 DNS(/etc/resolv.conf)以使 NIC 每次启动,编辑 /etc/sysconfig/network-scripts/ifcfg-eth0 并将 ONBOOT=no 行更改为 ONBOOT=yes