重新启动无头 CentOS 6.3 机器后,它失去了出站互联网连接,即我仍然可以通过 SSH 连接到服务器( ),但会出现ssh root@**.126.18.56
诸如、和之类的东西,并出现很多网络错误。ping google.com
google.com: unknown host
yum list some_package
ifconfig 给出的结果如下:
eth0 Link encap:Ethernet HWaddr 00:25:90:78:2D:5D
inet addr:**.126.18.56 Bcast:**.126.18.255 Mask:255.255.255.0
inet6 addr: fe80::225:90ff:fe78:2d5d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:75594 errors:0 dropped:0 overruns:0 frame:0
TX packets:787 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7074741 (6.7 MiB) TX bytes:144391 (141.0 KiB)
Interrupt:20 Memory:f7a00000-f7a20000
eth1 Link encap:Ethernet HWaddr 00:25:90:78:2D:5C
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:16 Memory:f7900000-f7920000
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:6 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:504 (504.0 b) TX bytes:504 (504.0 b)
我完全不知道如何调试这个,而且我觉得这很奇怪,因为我仍然可以通过 ssh 连接。
编辑:奇怪的是,/etc/resolv.conf
不包含任何条目,或者没有我能理解的条目:
# Generated by NetworkManager
search sui-inter.net
# No nameservers found; try putting DNS servers into your
# ifcfg files in /etc/sysconfig/network-scripts like so:
#
# DNS1=xxx.xxx.xxx.xxx
# DNS2=xxx.xxx.xxx.xxx
# DOMAIN=lab.foo.com bar.foo.com
那么重新启动服务器是否有可能删除该文件?至少以前是可以的!我该如何解决这个问题?
顺便说一下,ping IP 地址是可行的。
答案1
好的,您可以编辑以下文件以防止覆盖 resolv.conf
文件名是/etc/sysconfig/network-scripts/ifcfg-eth0
价值设置是
PEERDNS=no
答案2
我认为您的文件 /etc/resolv.conf 不存在或其中没有条目。通常它包含名称服务器地址,即 DNS 服务器地址。所有域名(如 google.com 等)都将使用该 DNS 服务器进行解析。
如果是 ssh root@**.126.18.56,它可以正常工作,因为这里您提供的是直接 IP 地址而不是名称。
答案3
我觉得 CentOS 在启动时会使用 /etc/sysconfig/network-scripts 中的脚本值重建 /etc/resolv.conf。这些值可能缺失、未设置或损坏。
那么重启服务器是否有可能删除该文件?至少以前是有效的!
它使用新的、最新的值重新创建了它。但出了点问题。(例如,因为它没有要设置的值)
我该如何解决这个问题?
快速解决方法:echo "nameservers 8.8.8.8" > /etc/resolv.conf
正确的解决方案:正确配置网络。首先查看网络管理器。(由于我没有 CentOS 经验,因此无法在此详细介绍。)
答案4
不允许 NetworkManager 管理您服务器的 NIC。
编辑/etc/sysconfig/network-scripts/ifcfg-eth0
。找到以下行:
NM_CONTROLLED=yes
将其改为:
NM_CONTROLLED=no
如果该行不存在,则添加它。