注意:本文使用的Linux系统版本为Red Hat Enterprise Linux 9 (RHEL 9)。
在RHEL9上,使用NM(NetworkManager)进行网络配置,ifcfg (也称为 文件)将不再是网络配置文件的主存储。虽然 ifcfg 样式仍然可用,但它不再是NetworkManager 存储新网络配置文件的默认位置。从 RHEL 9.0 开始,RHEL 以 key-file 格式在 /etc/NetworkManager/system-connections/ 中存储新的网络配 置。配置以旧格式存储在 /etc/sysconfig/network-scripts/ 中的连接仍然可以正常工作。对现有配置集的修改会继续更新旧的文件。
一、对IPv4进行知识回顾
首先,我们要对IPv4的原理进行回顾
IPv4(Internet Protocol version 4)是互联网中广泛使用的网络层协议,负责将数据包从源地址路由到目标地址。以下我们简单复习一下:
1. IPv4地址结构
-
地址长度:32位二进制,通常表示为点分十进制(如
192.168.1.1
)。 -
地址组成:
-
网络部分:标识设备所属的网络。
-
主机部分:标识网络中的具体设备。
-
-
地址分类(传统分类已逐渐被CIDR取代):
类别 范围 默认子网掩码 用途 A 1.0.0.0 - 126.255.255.255 255.0.0.0 大型网络(政府、ISP) B 128.0.0.0 - 191.255.255.255 255.255.0.0 中型网络(企业) C 192.0.0.0 - 223.255.255.255 255.255.255.0 小型网络(家庭、办公室) D 224.0.0.0 - 239.255.255.255 无 组播(Multicast) E 240.0.0.0 - 255.255.255.255 无 保留(实验用途) -
CIDR(无类别域间路由):取代传统分类,使用斜杠表示法(如
192.168.1.0/24
)灵活划分子网。
2. 子网掩码的作用
子网掩码是一个 32 位的二进制数,通常用点分十进制表示,如 255.255.255.0
。
如IP地址192.168.1.100/24
中的 /24 代表的是子网掩码前24位为1,剩下的为0,即子网掩码为255.255.255.0
。
它主要有以下两个作用:
-
划分网络地址和主机地址:在 IP 地址中,一部分表示网络地址,另一部分表示主机地址。子网掩码通过与 IP 地址进行按位与运算,能够确定 IP 地址中的网络部分和主机部分。例如,对于 IP 地址
192.168.1.100
和子网掩码255.255.255.0
,进行按位与运算后得到网络地址192.168.1.0
。 -
子网掩码为1的部分代表IP地址的网络位,子网掩码为0的部分代表IP地址的主机位。
-
划分子网:通过调整子网掩码,可以将一个大的网络划分为多个小的子网,提高 IP 地址的使用效率,同时也便于网络管理和安全控制。
3.IP 通信判定
在进行 IP 通信时,需要判断两个 IP 地址是否在同一个子网内,这可以通过比较它们的网络地址来实现。具体步骤如下:
-
将两个 IP 地址分别与子网掩码进行按位与运算,得到各自的网络地址。
-
比较两个网络地址,如果相同,则说明两个 IP 地址在同一个子网内,可以直接进行通信;如果不同,则说明它们不在同一个子网内,需要通过路由器进行通信。
示例:
假设有两个 IP 地址 IP1 = 192.168.1.100
和 IP2 = 192.168.1.200
,子网掩码为 255.255.255.0
。
-
计算
IP1
的网络地址:IP地址192.168.1.100/24
的网络地址为192.168.1.0
-
计算
IP2
的网络地址:IP地址192.168.1.200/24
的网络地址为192.168.1.0
由于两个网络地址相同,所以 IP1
和 IP2
在同一个子网内,可以直接通信。
4.网络命令设定
以下是 Linux 系统中 ping
、ifconfig
和 ip addr
命令的详细解析与使用指南:
1. ping
命令:网络连通性测试
功能
通过发送 ICMP 回显请求 探测目标主机的可达性,测量往返时间(RTT)及丢包率。
常用选项与示例
命令格式 | 说明 |
---|---|
ping <目标IP或域名> | 持续发送请求,按 Ctrl+C 停止(默认间隔1秒) |
ping -c <次数> <目标> | 指定发送请求次数(如 ping -c 4 google.com 发送4次后自动停止) |
ping -w <超时秒数> <目标> | 设置总超时时间(如 ping -w 5 8.8.8.8 最多等待5秒) |
ping -i <间隔秒数> <目标> | 设置发送间隔(如 ping -i 2 192.168.1.1 每2秒发送一次) |
ping -c1 -w1 <目标> | 组合选项:发送1次请求,最多等待1秒(常用于脚本快速检测) |
2. ifconfig
命令:传统网络接口管理
功能
查看或临时配置网络接口(已逐渐被 ip
命令替代)。
常用操作
命令格式 | 说明 |
---|---|
ifconfig | 显示所有活动接口的详细信息(IP、MAC、收发数据量等) |
ifconfig <接口名> | 查看指定接口状态(如 ifconfig eth0 ) |
ifconfig <接口名> <IP>/<掩码位数> | 临时设置接口 IP(如 ifconfig eth0 192.168.1.100/24 ) |
ifconfig <接口名> up/down | 启用/禁用接口(如 ifconfig eth0 down 关闭网卡) |
3. ip addr
命令:现代网络接口管理
功能
替代 ifconfig
,提供更强大的地址管理(属于 iproute2
工具集)。
常用操作
命令格式 | 说明 |
---|---|
ip addr show | 显示所有接口地址(等效 ifconfig ) |
ip addr add <IP>/<掩码位数> dev <接口> | 添加 IP 地址(如 ip addr add 192.168.1.101/24 dev eth0 ) |
ip addr del <IP>/<掩码位数> dev <接口> | 删除 IP 地址(如 ip addr del 192.168.1.101/24 dev eth0 ) |
ip addr flush dev <接口> | 清除接口所有地址(如 ip addr flush eth0 ) |
二、从网站下载文件的命令 wegt和curl
1、wget
命令基本格式:wget [选项] [URL]
-
选项:控制下载行为的参数(如限速、断点续传等)。
-
URL:要下载的资源地址(支持 HTTP/HTTPS/FTP 协议)。
wegt的常用参数速查表
参数 | 作用 | 典型场景 |
---|---|---|
-P | 指定下载目录 | 整理下载文件 |
-t | 控制重试次数 | 不稳定网络环境 |
-b | 后台下载 | 长时间下载任务 |
-c | 断点续传 | 中断后恢复下载 |
-p | 下载完整页面资源 | 离线浏览页面 |
-r | 递归下载链接内容 | 镜像网站或批量下载 |
示例:wget -r -P /root/桌面/testfile https://image.baidu.com/
2、curl
命令基本格式:curl [选项] [URL]
-
选项:控制请求行为(如方法、头信息、数据等)。
-
URL:目标资源地址(支持 HTTP/HTTPS/FTP/SFTP 等协议)。
curl 常用选项速查表
选项 | 作用 | 示例 |
---|---|---|
请求控制 | ||
-X <方法> | 指定请求方法(GET/POST等) | curl -X DELETE https://api.example.com |
-H "头字段" | 添加请求头 | curl -H "Content-Type: json" URL |
-L | 自动跟随重定向 | curl -L http://example.com/redirect |
数据传输 | ||
-d "数据" | POST 表单数据 | curl -d "name=John" URL |
-F "字段=值" | 上传文件/表单(multipart) | curl -F "file=@test.jpg" URL |
--data-binary | 发送二进制数据 | curl --data-binary @data.bin URL |
输出保存 | ||
-o 文件名 | 输出到文件 | curl -o page.html URL |
-O | 保存为远程文件名 | curl -O http://example.com/file.txt |
-s | 静默模式(不显示进度) | curl -s URL > /dev/null |
-v | 显示详细日志(调试用) | curl -v URL |
认证安全 | ||
-u 用户:密码 | 基本认证 | curl -u admin:12345 URL |
-k | 跳过 SSL 证书验证(不安全) | curl -k https://self-signed.site |
其他常用 | ||
-I | 仅获取响应头(HEAD请求) | curl -I URL |
-C - | 断点续传 | curl -C - -O URL |
--limit-rate | 限速(如 100K ) | curl --limit-rate 200K URL |
-x 代理地址 | 使用代理 | curl -x http://proxy:8080 URL |
示例:curl -o index.html www.baidu.com
三、使用图形界面方式设定IP
首先进行网络服务检查,NetworkManager这个服务处于运行状态我们才可以配置IP地址。
打开网络连接图形界面的命令:nm-connection-editor
nm-connection-editor 是 NetworkManager 提供的一款图形化网络连接配置工具,在 Linux 系统中,它能让用户以直观的图形界面来管理网络连接,而无需记忆复杂的命令行参数。
下图是新加的网络连接的初始状态,什么都没设定,接下来我们要对它重新设定一下。
nmcli工具: nmcli 是 NetworkManager 的命令行接口,用于管理网络连接。
下面我们将检查新创建的ens160网络连接是否在使用
1、nmcli connection show
-
功能:此命令用于显示系统中所有网络连接的详细信息。这些信息涵盖连接的名称、UUID(通用唯一识别码)、设备、类型以及连接状态等。
2、nmcli connection down <连接名称>
-
功能:该命令用于停用指定名称的网络连接。当执行此命令后,对应的网络接口将停止工作,无法再进行网络通信。
3、nmcli connection up <连接名称>
-
功能:此命令用于启用指定名称的网络连接。执行该命令后,对应的网络接口会重新开始工作,尝试建立网络连接。
nmtui 是 NetworkManager 提供的一个基于文本的用户界面工具,它允许用户以一种交互式、可视化的方式来配置和管理网络连接,无需记忆复杂的命令行参数,对于不太熟悉命令行操作的用户来说非常友好。
nmtui的界面如下图,很多操作与nm-connection-editor一致,就不细致的讲解了。
四、使用命令方式来设定网络IP
1、通过命令临时设定IP地址(系统重启或网络重启或接口单独重启 后临时配置的IP会消失)
ip a a
是ip addr add
的缩写形式,同理ip a d
是ip addr del
的缩写形式。所以ip addr add 192.168.52.200/24 dev ens160的效果跟下面ip a a 192.168.52.200/24 dev ens160的示例是一样的
命令格式:ip a a <ip地址/子网掩码> dev <device> #添加临时IP地址
ip a d <ip地址/子网掩码> dev <device> #删除IP地址,临时性的,因为这个命令只是在当前运行状态下从指定网络设备上移除了相应的 IP 地址配置,它不会修改系统中保存的网络配置文件。
示例:ip a a 192.168.52.200/24 dev ens160
命令格式:ifconfig <device> <IP地址> netmask <子网掩码>
示例:ifconfig ens160 192.168.52.201 netmask 255.255.255.0
2、通过命令永久设定IP地址
首先,使用 nmcli networking 查看网络是否开启,如果没有开启是无法永久设定IP地址的。
nmcli的常用命令
命令:1、nmcli device status # 查看设备状态--开启或者关闭
2、nmcli device show <device> # 查看设备的信息,若<device>不指定设备名称,则会默认查看所有设备的信息
3、nmcli device disconnect <device> # 断开设备连接,设备本身不关闭
示例:nmcli device disconnect ens160 # 断开设备ens160的连接,设备并不会关闭
4、nmcli device connect <device> # 重新连接设备,设备本身不关闭
示例:nmcli device connect ens160 # 重新连接设备ens160,设备并不会关闭
# 要先将设备ens160的网络配置好,否则如果没有配置好ens160的网络,那重新连接设备也是无效的。
5、nmcli device down <device> # 关闭设备,相当于给设备断电
示例:nmcli device down ens160 # 将设备ens160关闭
6、nmcli device up <device> # 开启设备,相当于给设备供电
示例:nmcli device up ens160 # 开启设备ens160
7、nmcli connection delete <网络连接名称> # 删除网络连接
示例:
8、nmcli connection add type <网络连接类型> con-name <网络连接名称> ifname
<接口名称> ipv4.method <ipv4地址的设置类型> ipv4.addresses <IP地址/子网掩码> ipv4.gateway <网关地址> ......
# 重新添加一个新的网络连接,若ipv4地址的设置类型为DHCP(自动),则后面不用手动添加IP地址,省略号代表还有很多其它选项可以使用,这里就不全部列举出来了。
nmcli connection add表示添加网络连接,后面的参数可以交换位置。
例如:nmcli connection add con-name test ipv4.method auto ifname ens160 type ethernet
示例:
注:若一个设备用于两个或以上的网络连接,那只有最先设置的网络连接会生效
9、nmcli connection modify <网络连接名称> ...... # 修改网络连接
# 省略号位置的参数可以参考上面第八点--- 即重新添加一个新的网络连接那个位置
nmcli connection modify表示修改网络连接,后面的参数可以交换位置。
示例:
3、通过设置配置文件来永久设置IP地址
首先,要检查网卡配置目录里面的文件权限不要出错了,否则无法激活网络连接。
然后,就是修改网卡配置目录里面的文件,只要修改完这个test.nmconnection文件之后对文件进行保存,就是永久性的设置。
下图为原设置。
下图为修改之后的设置,只修改了id和ipv4地址。
若想要上图中文件的修改立即生效,需要输入nmcli connection reload、nmcli connection up test这两条命令,让网络配置重新生效。
永久性修改:
通过修改网卡配置目录里文件的配置和使用nmcli命令修改后的配置都是永久性的。
例如:上图中的IP地址、dns服务器和网关都是永久性的,前提是文件要保存设置。
五、网关定义及配置方法
网关(Gateway) 是连接不同网络的设备或节点,负责在不同网络间转发数据。在 TCP/IP 网络中,默认网关是本地网络与其他网络(如互联网)通信的出口路由器的 IP 地址。当设备需要访问不在同一子网的目标 IP 时,数据包会被发送到默认网关进行路由。
下图中配置的网关是临时的,系统重启、网络重启、接口单独重启会让网关消失。
六、DNS解析和DNS的配置方法
一、DNS的定义
DNS(Domain Name System,域名系统) 是一个分布式数据库系统,用于将人类可读的域名(如 www.example.com
)转换为计算机可识别的IP地址(如 192.0.2.1
)。它是互联网的“电话簿”,通过分层和分布式的设计,实现了高效、可靠的域名解析。
二、DNS的核心作用
-
域名解析:将域名转换为IP地址(正向解析)或IP地址转换为域名(反向解析)。
-
负载均衡:通过轮询分配同一域名的多个IP地址,分散服务器压力。
-
邮件路由:通过MX记录指定邮件服务器的地址。
-
服务发现:支持多种记录类型(如SRV记录)定位特定服务(如VoIP、数据库)。
三、DNS配置方法
下图配置的DNS服务器是临时的。