域名系统DNS和nmcli命令的使用

2023-10-30 17:10

本文主要是介绍域名系统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命令的使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/309388

相关文章

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

prometheus如何使用pushgateway监控网路丢包

《prometheus如何使用pushgateway监控网路丢包》:本文主要介绍prometheus如何使用pushgateway监控网路丢包问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录监控网路丢包脚本数据图表总结监控网路丢包脚本[root@gtcq-gt-monitor-prome

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

SpringBoot中如何使用Assert进行断言校验

《SpringBoot中如何使用Assert进行断言校验》Java提供了内置的assert机制,而Spring框架也提供了更强大的Assert工具类来帮助开发者进行参数校验和状态检查,下... 目录前言一、Java 原生assert简介1.1 使用方式1.2 示例代码1.3 优缺点分析二、Spring Fr

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期