最近,经常遇到Linux主机无法上网的问题,百度也都是复制文章,只能给予有限的帮助。
总结了下,出现不能正常上网的几种现象及解决办法:
1. DNS配置错误。现象是:可以ping通dns主机的IP地址,无法ping域名。
关于DNS配置的文件主要有2个:/etc/sysconfig/network-scripts/ifcfg-eth0(一般是这个,我的是/etc/sysconfig/network-scripts/ifcfg-p3p1) 和 /etc/resolv.conf 。前一个配置文件是重启服务生效,后一个配置文件立即生效。2个文件同时存在的情况下,若不重启网络服务,后一个配置文件生效,若重启网络服务,前一个配置文件生效。
网络服务未重启前: [root@controller ~]# cat /etc/sysconfig/network-scripts/ifcfg-p3p1 DEVICE=p3p1 HWADDR=B0:83:FE:AF:76:51 TYPE=Ethernet UUID=bd3da90d-ef66-46cb-9888-c236d6112ed3 ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=static IPADDR=192.168.27.253 NETMASK=255.255.255.0 GATEWAY=192.168.27.254 DNS1=192.168.35.36 [root@controller ~]# cat /etc/resolv.conf nameserver 192.168.35.35 重启网络服务后,DNS改为: [root@controller ~]# cat /etc/resolv.conf nameserver 192.168.35.36 还有2个可能会影响上网的配置文件:/etc/nsswitch.conf 和 /etc/hosts /etc/nsswitch.conf配置文件默认: hosts: files dns #这条主要用来配置解析主机名时,先使用/etc/hosts文件还是先使用dns。 此时,如果/etc/hosts文件中也存在一条到某个相同域名的记录,就会使用/etc/hosts配置。
2. 网络配置错误。现象是:ping不通dns主机的IP地址。
此类排错需要具备一些基础的网络知识。
首先,查看本机的IP地址的设置是否正常。
[root@controller ~]# ifconfig 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:6976400 errors:0 dropped:0 overruns:0 frame:0 TX packets:6976400 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:1291802428 (1.2 GiB) TX bytes:1291802428 (1.2 GiB) p3p1 Link encap:Ethernet HWaddr B0:83:FE:AF:76:51 inet addr:192.168.27.253 Bcast:192.168.27.255 Mask:255.255.255.0 inet6 addr: fe80::b283:feff:feaf:7651/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2217287 errors:0 dropped:0 overruns:0 frame:0 TX packets:1849320 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:357729528 (341.1 MiB) TX bytes:238314566 (227.2 MiB)
其次,测试主机与默认网关的连通性。
[root@controller ~]# ping -c 1 192.168.27.254 PING 192.168.27.254 (192.168.27.254) 56(84) bytes of data. 64 bytes from 192.168.27.254: icmp_seq=1 ttl=255 time=0.889 ms --- 192.168.27.254 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 1ms rtt min/avg/max/mdev = 0.889/0.889/0.889/0.000 ms
最后,检测下防火墙的配置。 由于访问域名时,需要使用53端口,如果防火墙禁用了此端口,也是无法通过域名放问的。
暂时也就想到了这些。