Linux的DNS服务和nmcli命令

        DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

首先,先来做个测试,假如虚拟机已经连上internet,看此虚拟机能不能ping通百度

首先,我先给主机连上wifi,并且已经ping通了百度。接下来我通过虚拟机desktop  ping百度

但是它并没有ping通,但是desktop通过ping百度的IP,却可以ping通

造成这样的原因就是此虚拟机没有DNS域名解析。设定DNS主要有三种:

1.本地解析文件  /etc/hosts,可以在此文件下添加格式为 (IP  域名)  例如:220.181.111.188  www.baidu.com

2.DNS指向文件  /etc/resolv.conf  可以在此文件下添加  nameserver  114.114.114.114

3.在/etc/sysconfig/network-scripts/ifcfg-eth0这个文件下添加DNS1=114.114.114.114

本地解析文件的优点是响应速度快,相当于直接pingIP。缺点是网络上域名很多,本地解析文件不可能做到每个都存下来。

DNS指向文件弥补了这个缺点,它的原理就是当访问域名时,会先访问114.114.114.114,然后由114.114.114.114解析域名从而得到IP。114.114.114.114是一个专门做解析的服务器

1.本地解析文件操作如下:

2.DNS指向文件操作:

第三种与第二种等效。

设定解析优先级:

系统默认本地解析的优先级高于DNS指向文件,在/etc/nsswitch.conf文件下,第39行   files在DNS前面,如果把DNS和files调换一下位置,那么DNS指向文件的优先级就高于本地解析。

为了验证上面的问题,我先把本地解析文件修改一下,

如果不对/etc/nsswitch.conf做任何修改的话,ping百度的结果是如下图,但IP并不是百度的IP,是本地解析文件下设定的IP

然后我在/etc/nsswitch.conf这个文件下调换一下files和dns的位置

然后ping百度,得到的结果是如下图,是百度的IP

如果改成动态获取IP ,重启网络后,会刷掉DNS,所以需要先重启网络后再添加DNS,如果是静态DNS就不会被刷掉下面我对这个问题做一测试。首先,我在静态下看会不会被刷,然后换到dhcp下,看会不会被刷。

结果证明静态下不会被刷掉。

结果证明,动态下第一次重启网络后会刷掉DNS。所以需要重启后再次在/etc/resolv.conf下再次添加nameserver  114.114.114.114

附加:命令nmcli,设定网络

nmcli device connect eth0       启用eth0网卡
nmcli device disconnect eth0      关闭eth0网卡
nmcli device show eth0          查看网卡信息
nmcli device status eth0      查看网卡服务接口信息

nmcli connection show       展示
nmcli connection down westos     关闭
nmcli connection up westos      开启
nmcli connection delete westos   删除
nmcli connection add type ethernet con-name westos ifname eth0 ip4 172.25.254.100/24    添加IP
nmcli connection modify westos ipv4.method auto     改为自动获取
nmcli connection modify westos ipv4.method manual    改为手动
nmcli connection modify westos ipv4.addresses 172.25.254.150/24    更改IP

可以用nmcli+tab+tab进一步了解更多命令

猜你喜欢

转载自blog.csdn.net/lm236236/article/details/83278493