Linux报错之ping: www.baidu.com: Name or service not known

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声明的域中分别查找。domainsearch不能共存;如果同时存在,后面出现的将会被使用。
    • sortlist: 允许将得到域名结果进行特定的排序。它的参数为网络/掩码对,允许任意的排列顺序。
  • Red Hat中没有提供缺省的/etc/resolv.conf文件,它的内容是根据在安装时给出的动态创建的。

建议(因多人询问),特加一栏

桥接模式

虚拟机服务器桥接模式

  • 尽量使用桥接模式,桥接模式和NAT模式的区别会在另外一篇文章说明, 这里建议使用桥接模式。

网卡位置

[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens3

桥接模式的配置

  • 网卡配置参照本身物理机的配置。
    Windows 10物理机的网络设配器的配置

虚拟机网卡的配置

[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

  • 6
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 23
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值