从 10.04 升级到 12.04,失去互联网连接

从 10.04 升级到 12.04,失去互联网连接

自从我将 HP Proliant 服务器从 Ubuntu 10.04 升级到 12.04 后,我无法:

  • ping google.com
  • ping 8.8.8.8
  • 使用 Firefox 浏览互联网
  • git 获取源地址
  • 从远程机器部署 cap

然而,当我通过我们公司网络内的 IP 地址访问该服务器时,我可以看到我的 Rails 应用程序正在该服务器上运行。

我看到了 GUI 中的网络图标,但“有线网络”显示为灰色。

根据我在 AU 上浏览过的许多类似但未解决的线程,这里有一些其他相关信息:

dean@dgwjasonfried:~$ ifconfig

eth0      Link encap:Ethernet  HWaddr 1c:c1:de:fa:cd:9f  
          inet addr:10.24.5.50  Bcast:10.24.5.255  Mask:255.255.255.0
          inet6 addr: fe80::1ec1:deff:fefa:cd9f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:40735 errors:0 dropped:0 overruns:0 frame:0
          TX packets:77215 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2806140 (2.8 MB)  TX bytes:113945803 (113.9 MB)
          Interrupt:19 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:22 errors:0 dropped:0 overruns:0 frame:0
          TX packets:22 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1872 (1.8 KB)  TX bytes:1872 (1.8 KB)

dean@dgwjasonfried:~$ lspci -nn | grep 以太网

1e:00.0 Ethernet controller [0200]: Broadcom Corporation NetXtreme BCM5723 Gigabit Ethernet PCIe [14e4:165b] (rev 10)

在 /etc/网络/接口:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

/etc/resolv.conf:

domain dgw.ame.molex.com
search dgw.ame.molex.com
nameserver 10.24.2.171
nameserver 10.45.2.171

**在尝试遵循以下和其他地方给出的一些建议后,于 2013 年 3 月 19 日更新:

dean@dgwjasonfried:~$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
search dgw.ame.molex.com
domain dgw.ame.molex.com
search dgw.ame.molex.com
nameserver 10.24.2.171
nameserver 10.45.2.171

**更新结束

内核 IP 路由表

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.24.5.1       0.0.0.0         UG    0      0        0 eth0
10.24.5.0       0.0.0.0         255.255.255.0   U     1      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0

**已更新以显示 NetworkManager.conf 和 resolv.conf 符号链接对我有用的证据

dean@dgwjasonfried:~$ cat /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile
dns=dnsmasq

[ifupdown]
managed=true

dean@dgwjasonfried:~$ ls -l /etc/resolv.conf
lrwxrwxrwx 1 root root 29 Mar 18 09:33 /etc/resolv.conf -> ../run/resolvconf/resolv.conf

**在我删除 /etc/resolvconf/resolv.conf.d 中的原始文件并清除位于尾部的原始副本后,更新为显示最新的 resolv.conf,然后重新启动:

dean@dgwjasonfried:/etc/resolvconf/resolv.conf.d$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
search dgw.ame.molex.com

请注意,上面早期 resolv.conf 版本中列出的名称服务器条目现已消失。另请注意,虽然我能够短暂地 ping google.com 来解析 google.com 的 IP 地址(但仍然没有收到任何数据包),但现在我又回到了原来的情况,我得到了“未知主机 google.com”。

**更新结束

如果您能提供任何帮助或建议我将不胜感激。

谢谢!

迪安·理查森

答案1

我认为退一步来讲,教一个人如何钓鱼而不是仅仅告诉你哪里错了是有益的。

制作一个良好的网络连接

  • 它可以是硬件:以太网卡、电缆触点、直接连接的交换机上的网络接口等。
  • 它可以是低级软件:网卡的内核驱动程序
  • 它可以是你的路由表
  • 它可以是 DNS

并且这些都是自下而上相互依赖的,例如,如果您无法正确路由数据包,您就无法访问您的 DNS 服务。

据我所知,只有一种(合理的)方法可以查明问题:通过消除的方式一个接一个地查找。

您的描述中有一句话引人注目:

然而,当我通过我们公司网络内的 IP 地址访问该服务器时,我可以看到我的 Rails 应用程序正在该服务器上运行。

您尝试了这一点,真是太好了。这条信息非常宝贵,因为它排除了许多可能的原因。这意味着您的硬件和(内核)驱动程序以及公司网络内的连接看起来都很好。输出ifconfig显示正在发送和接收的数据包,没有(零)错误、冲突或重传,这也证实了这一点。目前,我确信您的问题仅出在您的配置上。

我注意到您的内部 DNS 服务器位于(非公共)IP:10.24.2.171,这不在您的直接子网 10.24.5.0 上,您可以通过以下ifconfig输出行判断这一点:

inet addr:10.24.5.50  Bcast:10.24.5.255  Mask:255.255.255.0

请注意,您的掩码仅将 4 个八位字节中的最后一个保留为 0,这意味着您仅通过 10.24.5.x 子网进行广播。您可能没有通往内部 DNS 服务器的完整路由。

我现在要做的实验是尝试验证到基本组件的路线:

  1. 您的网关 10.24.5.1
  2. 您的域名服务器 10.24.2.171

必须做到这些按 IP因为我们还不知道您的 DNS 服务器是否正常以及您是否可以与其通信。

# first traceroute the gateway:
traceroute 10.24.5.1

no route to host如果此操作失败并出现类似或 的错误destination is unreachable,则几乎可以肯定您的问题出在路由表中。如果成功,那么您就向前迈出了一大步,因为路由本身就是一个大课题。

# if successful traceroute the DNS server
traceroute 10.24.2.171

如果失败,则问题可能是网络掩码太严格。尝试将其更改为 255.255.0.0。您可以/etc/network/interfaces通过添加以下内容进行设置:

netmask 255.255.0.0

在下面eth0

解决此问题后,您需要重新启动网络:

sudo /etc/init.d/networking restart

高血压

答案2

其中一个问题是 resolvconf 没有正确配置。参考:https://bugs.launchpad.net/ubuntu/+source/resolvconf/+bug/1000244。要解决此问题,请运行

    sudo dpkg-reconfigure resolvconf

但是,这不能成为您无法通过 IP 地址 ping 通其他机器的原因。

答案3

eth0      Link encap:Ethernet  HWaddr 1c:c1:de:fa:cd:9f  
      inet addr:10.24.5.50  Bcast:10.24.5.255  Mask:255.255.255.0

10.*接口通常有网络掩码255.0.0.0。请检查网络掩码是否适合您的 LAN。

相关内容