Linux报错之ping: www.baidu.com: Name or service not known
- centos作为操作系统的Virtual Machine:
[root@localhost ~]# cat /etc/*release
CentOS Linux release 7.5.1804 (Core)
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
CentOS Linux release 7.5.1804 (Core)
CentOS Linux release 7.5.1804 (Core)
- Virtual Machine的系统信息。
Virtual Machine的网络信息
NAT地址转换模式下的IP信息
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=eac2ccd5-8840-41da-8da5-fa3967bf63fa
DEVICE=enp0s3
ONBOOT=no
- IP的信息——Virtual Machine 默认Network(NAT方式):
[root@localhost ~]# ip a
1: lo: <LOOPBACK, UP, LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 100
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:e6:d8:e9 brd ff:ff:ff:ff:ff:ff
- 这个时候进行
ping www.baidu.com
出现:
ping: www.baidu.com: Name or service not known
- 导致了这个Error,所以JackDan把Virtual Machine的Network切换为了Bridged Adapter,重新启动了network service,并且查看了IP信息以及Ping操作。
并且不能通过局域网的IP地址链接Virtual Machine,因为没有IP地址。
[root@localhost ~]# systemctl restart network
[root@localhost ~]# ip a
1: lo: <LOOPBACK, UP, LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 100
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:e6:d8:e9 brd ff:ff:ff:ff:ff:ff
[root@localhost ~]# ping www.baidu.com
ping: www.baidu.com: Name or service not known
[root@localhost ~]#
- 错误并没有得到解决,所以想到了配置静态的IP地址。
配置固定静态的IP地址
static
配置固定静态的IP地址
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=eac2ccd5-8840-41da-8da5-fa3967bf63fa
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.1.14
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
[root@localhost ~]#
- IP信息变化:
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:e6:d8:e9 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.14/24 brd 192.168.1.255 scope global noprefixroute enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::dc00:3fde:3fc4:b033/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@localhost ~]#
- 这个时候可以通过局域网连接到Virtual Machine(ssh 方式连接),进行Ping操作检测是否能够连接上公网,操作如下:
[root@localhost ~]# ping www.baidu.com
ping: www.baidu.com: Name or service not known
[root@localhost ~]#
- 说明IP已经配置在局域网中的,但是还是无法连接外网,接着查看了一下
DNS
的配置:
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
[root@localhost ~]#
- 发现
DNS
里面的配置就只有一行注释,所以JackDan需要对DNS进行配置,配置如下:
[root@localhost ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 114.114.114.114
[root@localhost ~]#
- 然后重新启动一下
network service
,操作如下:
[root@localhost ~]# systemctl restart network
[root@localhost ~]#
- 接着进行Ping操作,操作如下:
[root@localhost ~]# ping www.baidu.com
PING www.a.shifen.com (111.13.100.92) 56(84) bytes of data.
64 bytes from 111.13.100.92 (111.13.100.92): icmp_seq=1 ttl=50 time=16.0 ms
64 bytes from 111.13.100.92 (111.13.100.92): icmp_seq=2 ttl=50 time=14.3 ms
64 bytes from 111.13.100.92 (111.13.100.92): icmp_seq=3 ttl=50 time=13.4 ms
64 bytes from 111.13.100.92 (111.13.100.92): icmp_seq=4 ttl=50 time=16.0 ms
^C
--- www.a.shifen.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3013ms
rtt min/avg/max/mdev = 13.413/14.980/16.089/1.139 ms
[root@localhost ~]#
- 这就说明可以Ping通外网了,可以进行上网了。
/etc/resolv.conf
配置DNS客户端
- 文件
/etc/resolv.conf
配置DNS客户端,它包含了主机的域名搜索顺序和DNS服务器的地址,每一行应包含一个关键字和一个或者多个的由空格隔开的参数。下面是一个例子文件:
search mydom.edu.cn
nameserver 210.34.0.14
nameserver 210.34.0.2
- 合法的参数及其意义如下:
nameserver
: 表明DNS服务器的IP地址。可以有很多行的nameserver,每一个带一个IP地址。在查询时就按nameserver在本文件中的顺序进行,且只有当第一个nameserver没有反应才查询下面的nameserver。domain
: 声明主机的域名。很多程序用到它,如邮件系统;当为没有域名的主机进行DNS查询时,也要用到。如果没有域名,主机名将被使用,删除所有在第一个点(.)前面的内容。search
: 它的多个参数指明域名查询顺序。当要查询没有域名的主机,主机将在由search
声明的域中分别查找。domain
和search
不能共存;如果同时存在,后面出现的将会被使用。sortlist
: 允许将得到域名结果进行特定的排序。它的参数为网络/掩码对,允许任意的排列顺序。
- Red Hat中没有提供缺省的
/etc/resolv.conf
文件,它的内容是根据在安装时给出的动态创建的。
建议(因多人询问),特加一栏
桥接模式
- 尽量使用桥接模式,桥接模式和NAT模式的区别会在另外一篇文章说明, 这里建议使用桥接模式。
网卡位置
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens3
桥接模式的配置
- 网卡配置参照本身物理机的配置。
虚拟机网卡的配置
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=78085897-65c9-472d-831b-ebc34fb54667
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.22
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
[root@localhost ~]# cat /etc/resolv.conf
search localdomain
nameserver 127.0.0.1
nameserver 8.8.8.8
nameserver 114.114.114.114
[root@localhost ~]#
- 箭头所指都是依赖于自身物理机设配器的网络配置。
以上建议均来自于参与文章改善的小伙伴建议,在此非常感谢他们提升文章解决问题的能力。
自己写的前后端小程序,介绍城市、城市美景、城市美食以及在中国地图中大致位置,感兴趣可以看看,也欢迎提建议,小程序码如下:
JackDan Thinking