本文主要是介绍域名系统DNS和nmcli命令的使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言:什么是DNS
用户与互联网上某台主机通信时,必须要知道对方的ip地址。然而用户很难记住长达32位的二进制主机地址。即使是点分十进制IP地址也并不容易记忆。但是在应用层为了便于用户记忆各种网络应用,连接在互联网上的主机不仅有IP地址,而且还有便于用户层记忆的主机名字。域名系统DNS能够把互联网上的主机名字转换成IP地址。
为了直观的感受DNS的应用,我将在server虚拟机上进行试验。
1. server虚拟机要想ping通其他地址,需要能够连通网络,这里我给真机连上wifi,并在server虚拟机上做如下操作:
- 设置server的网关为真机的ip
vim /etc/sysconfig/network-scripts/ifcfg-eth0
打开网卡配置文件编辑以下内容:
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
IPADDR=172.25.254.230 ##设置server的ip地址是172.25.254.230
NETMASK=255.255.255.0 ##设置子网掩码
GATEWAY=172.25.254.77 ##设置server网关和真机ip相同
- 重启网络:
systemctl restart network
2. 真机上完成下列操作:
systemctl start firewalld
firewall-cmd --add-masquerade
vim /etc/sysctl.conf
打开 /etc/sysctl.conf后,在最后一行加上:
net.ipv4.ip_forward=1
完成上述操作后,在真机ping百度:
得到了百度的ip地址为:220.181.112.244
在server(node2)上ping百度ip:
图中可以看到虚拟机现在可以ping通外网了。
现在回到正题:
既然我能在虚拟机中ping通百度的ip,那可不可以ping通百度的网址呢?
很遗憾,只能ping通已知的ip,ping不通网址。
那么怎样才能ping通网址呢
vim /etc/hosts
打开hosts文件,下图为原始数据:
在最后一行添加百度的ip和网址:
退出保存后ping百度网址发现可以ping通:
可是当我想访问其他网站时,我也要一条一条的这样加进去吗,未免太过麻烦,而且我也记不清其他网站的ip,这时DNS的作用就彰显出来了。
vim /etc/resolv.conf
打开resolv.conf:
把第二行改成:
nameserver 114.114.114.114 ##是DNS解析服务的ip
保存退出后,我试着ping了新浪的网址:
成功ping通!我们没有特意写入新浪的ip和网站,现在有了DNS可以ping通了。
那假如我同时写入一个ip,而且使用DNS,谁的优先级高呢?
在/etc/host写入自己添加的ip和网址:
ping www.taobao.com
发现本地添加的ip优先级高于DNS。
那怎么更改优先级呢?
vim /etc/nsswitch.conf
打开nsswitch.conf的文件:
编辑第39行,调换files和dns的顺序:
再次ping淘宝:
这个淘宝的ip已经不是我自定义的那个ip了,此时优先级已经被改。
设置成功以上的内容虽然很开心,但是当我重启网络时,发现server又又又ping不通了,sad,原来上面的设置是临时的。那么如何设置永久的DNS呢?
有两种方式,一种是静态手动设置,另一种是动态自动获取。
永久设定DNS
一、静态设置
vim /etc/sysconfig/network-scripts/ifcfg-eth0
更改之后重启网络,并且查看/etc/resolv.conf里是否有dns的ip
可以看到DNS的ip不仅在重启后仍然存在,而且可以正常ping通百度了。
二、动态设置
vim /etc/sysconfig/network-scripts-scripts/ifcfg-eth0
编辑如下:
保存退出
重启网络
vim /etc/resolv.conf
编辑:
保存退出后重启网络
cat /etc/resolv.conf
发现:
以上就是分别以静态、动态的方式设置dns了。
使用nmcli命令创建网络
先来熟悉一下nmcli的一些基本命令:
nmcli connection show ##显示能连接的设备的信息
nmcli connection delete "System eth0" ##删除eth0
nmcli device connect eth0 ##连接eth0
nmcli device disconnect eth0 ##断开eth0连接
nmcli device status eth0 ##查看eth0设备信息
nmcli device show eth0 ##查看eth0详细信息
一、创建静态网络
nmcli connection add con-name westos ifname eth0 type ethernet ip4 172.25.254.230/24 ##创建一个名叫westos的eth0的以太网类型使用ipv4的172.25.254.230,子网掩码为255.255.255.0的ip
可以看到静态ip设置完毕。
那么怎么使用命令来将静态ip改为动态ip呢?
nmcli connection modify westos ipv4.method auto
二、配置动态网络
删除上面创建的ip
nmcil connection add type ethernet con-name westos ifname eth0 autoconnect yes ##自动连接的westos
如何将动态ip改成静态ip呢?
nmcli connection modify westos ipv4.addresses 172.25.254.230/24
nmcli connection modify westos ipv4.method manual
这篇关于域名系统DNS和nmcli命令的使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!