一、NetworkManager服务:
NetworkManager - Linux Networking made Easy
NetworkManager简介:NetworkManager由一个管理系统网络连接、并且将其状态通过D-BUS(是一个提供简单的应用程序 互相通讯的途径的自由软件项目,它是做为freedesktoporg项目的一部分来开发的。)进行报告的后台服务,以及一个允许用户管理网络连接的客户 端程序。
NetworkManager的优点:简化网络连接的工作,让桌面本身和其他应用程序能感知网络。
nmcli 命令中的 nm 是 NetworkManager 的缩写
所以,从字面上理解, nmcli 是 NetworkManager 的客户端命令,所以使用nmcli指令,请确保NetworkManager服务开启
nmcli 是 NetworkManager 的命令行控制器,下面来看看nmcli如何使用
nmcli dev status
nmcli con show
1.添加一个静态ip
nmcli connection add con-name lei type ethernet ifname eth0 ip4 172.25.254.156/24
nmcli con show
2.添加一个动态ip
nmcli connection add con-name lei type ethernet ifname eth0 autoconnect yes
3.更改网络
nmcli con up <NAME> #激活一个连接,也可以重启指定网卡
nmcli con down <NAME> #取消该连接,如果是自动连接的网络会重新连接
4.将静态网络改为动态网络
nmcli connection modify lei ipv4.method auto
5.将动态网络改为静态网络
nmcli connection modify lei ipv4.addresses 172.25.254.156
6.删除网络
nmcli con del lei
二、dns
DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。
修改dns
#查看网络连接
nmcli con show
NAME UUID TYPE DEVICE
System eth0 xx-xx-xx-xx ethernet eth0
System eth1 xx-xx-xx-xx ethernet --
System eth2 xx-xx-xx-xx ethernet --
System eth3 xx-xx-xx-xx ethernet --
System eth4 xx-xx-xx-xx ethernet --
# 修改dns地址
nmcli con modify "<NAME>(e.g. System eth0)" ipv4.dns "<需要修改的DNS地址,多个用空格分隔>"
# 重启连接,生效配置
nmcli con modify up "<NAME>"
1.通过修改hosts的方式
之前的单跳路由实验中,不可以ping网址,现在在虚拟机编辑/etc/hosts文件中添加ip 域名,然后在ping的时候就可以直接输入域名了,前提是你已经设置好了单跳路由,把真机当作路由器
vim /etc/hosts
然后在ping百度,就可以了
2.修改配置文件
在DNS指向文件/etc/resolv.conf文件中添加知道域名解析的nameserver
eg:在DNS指向文件那种添加nameserver 114.114.114.114
nameserver 114.114.114.114
就可以ping通网上的网站了
注意:在动态网络下,添加是临时的;在静态网络下不是临时的
3.dns解析优先顺序
/etc/nsswitch.com 文件确定DNS解析的优先级顺序
我现在在hosts文件中添加csdn的域名47.95.164.112,而在dns中设置的dnsserver是114的,那么默认情况下是通过那个服务来ping通csdn网站呢,默认是走的hosts的文件,因为默认是本地的优先级高,那么如何使用dnsserver这个服务呢,
vim /etc/nsswitch.com
如图,第39行的file改成dns即可
在使用ping命令的时候走的就是dnsserver服务了
三、实验
1.动态分配网络时候的dns设定
当网络设置为dhcp(如何设置请看我linux中的网络配置那篇文章)的时候,ip,子网掩码以及网关等都是自动分配的,在这种情况下,会自动的分配一个dns
如果我不想用这个dns,然后我自己在配置文件中添加一个dns服务器的ip,在系统重启后,这个dns服务器会消失不见
那么如何才能使用我自己设定的dns服务器呢
vim /etc/sysconfig/network-scripts/ifcfg-eth0
将第13行的PEERDNS改为no
dns就不会自动分配,然后就可以在dns的配置文件中添加我们想要使用的dns,在ping的时候就使用自己设定的dns了
2.静态设置dns
静态网络下,在/etc/resolv.conf文件中添加的nameserver 重启网络不会消失
若在网络设置中添加DNS,则这个DNS会覆盖掉/etc/resolv.conf文件中的手动设置的一个nameserver
注意:只是覆盖掉,不是丢失
若用PEERDNS=no,则会不显示网络中设定的DNS,手动添加的nameserver重新显示出来。