在Linux系统中,网络配置是运维和开发的核心技能之一。无论是服务器管理、容器化部署还是日常开发调试,掌握网络配置方法都至关重要。本文将深入讲解Linux网络配置的核心概念、工具使用及实战技巧,助你构建稳定的网络环境。
一.RHEL9版本特点
在RHEL7版本中,同时支持network.service和NetworkManager.service(简称NM)。
在RHEL8上默认只能通过NM进行网络配置,包括动态ip和静态ip,若不开启NM,否则无法使用网络
RHEL8依然支持network.service,只是默认没安装,可以通过 yum install network-scripts 来安装传统的network.service,不过redhat说了,在下一个rhel的大版本里将彻底废除,因此不建议用network.service。
在RHEL9上,使用NM进行网络配置,ifcfg (也称为 文件)将不再是网络配置文件的主存储。虽然ifcfg 样式仍然可用,但它不再是 NetworkManager 存储新网络配置文件的默认位置。从 RHEL 9.0开始,RHEL 以 key-file 格式在 /etc/NetworkManager/system-connections/ 中存储新的网络配置。配置以旧格式存储在 /etc/sysconfig/network-scripts/ 中的连接仍然可以正常工作。对现有配置集的修改会继续更新旧的文件。
二.NM特点
NetworkManager是2004年Red Hat启动的项目,旨在能够让Linux用户更轻松地处理现代网络需求,能自动发现网卡并配置ip地址。
NetworkManager的特点
NM能管理各种网络
三、网络基础:IP地址与子网掩码
1. IPv4地址与子网掩码
-
IPv4地址:由32位二进制数组成,通常以点分十进制表示(如
172.25.254.100
),用于唯一标识网络中的设备。 -
子网掩码:用于划分网络区域。例如:
-
255.255.255.0
(/24)表示前24位为网络位,后8位为主机位。 -
若两个IP的网络位相同(如
172.25.254.1/24
和172.25.254.2/24
),则可以直接通信。
-
2. IP通信判定
-
规则:网络位一致且主机位不同的IP可直接通信。
-
示例:
172.25.254.1/24 与 172.25.254.2/24 ✔️ 可通信
172.25.254.1/24 与 172.25.0.1/16 ❌ 不可通信
四、网络工具与基础操作
1. 常用网络工具
-
连通性测试:
ping 172.25.254.1 # 持续检测
ping -c 1 172.25.254.1 # 发送1次包
ping -w 1 172.25.254.1 # 超时1秒
网卡管理:
ifconfig # 查看所有网卡
ifconfig ens160 172.25.254.100/24 # 临时设置IP
ip addr show ens160 # 查看网卡详细信息(推荐使用`ip`命令)ifconfig # 查看所有网卡
ifconfig ens160 172.25.254.100/24 # 临时设置IP
ip addr show ens160 # 查看网卡详细信息(推荐使用`ip`命令)
三.配置网络
1.概念
(1) 网络接口是指网络中的计算机或网络设备与其他设备实现通讯的进出口,一般是指计算机的网络接口即网卡设备
(2)从RHEL7开始引入了一种新的“一致网络设备命名”的方式为网络接口命名,该方式可以根据固件、设备拓扑、设备类型和位置信息分配固定的名字。网络接口的名称的前两个字符为网络类型符号
如:
en——表示以太网(Ethernet)
wl表示无线局域网(wlan)
ww表示无线广域网(wwan);
(3)接下来的字符根据设备类型或位置选择,如:
o——表示内置(onboard)于主板上的集成设备(即集成网卡)及索引号;
s——表示是插在可以热拔插的插槽上的独立设备及索引号;
x——表示基于MAC地址命名的设备;
p——表示PCI插槽的物理位置及编号。
注意:一个网络接口,可以有多个网络连接,但同一时间只能有一个网络连接处于活动状态
配置方法
1. 图形化工具
-
nm-connection-editor
:图形界面配置网络(需安装NetworkManager
)。 -
nmtui
:基于终端的文本界面工具,支持交互式配置。
2. 命令行工具(nmcli
)
(1)作用:nmcli,可以实现创建,显示,编辑,删除,激活和停用网络连接以及控制和显示网络设备状态等
(2)查看网卡信息
[root@server ~]# nmcli c show # 全写为:nmcli connection show
[root@server ~]# nmcli con show ens160 # 查看指定网卡的详细信息,q键退出
[root@server ~]# nmcli dev status # 查看已有设备的连接状态
[root@server ~]# nmcli dev show # 看所有网络设备详情,q键退出
(3)激活和关闭网络连接
[root@server ~]# nmcli c up 网卡名 # 激活,也是重启网卡的一种方法
[root@server ~]# nmcli c down 网卡名 # 关闭
(4)添加网络添加
例:添加网络连接ens161
[root@server ~]# nmcli c add type ethernet ifname ens160 con-name ens161
autoconnect yes ip4 192.168.48.135/24 gw4 192.168.48.2
连接 "ens161" (37bc8e79-92ea-4c01-a4af-1dfd7c687014) 已成功添加。
[root@server ~]# nmcli c up ens161 # 不能在xshell操作,否则ssh连接断掉
[root@server ~]# nmcli c show
[root@server ~]# nmcli c up ens160
(5)设置静态ip
[root@server ~]# nmcli c modify ens160 ipv4.method manual ipv4.addresses
'192.168.48.134/24' ipv4.gateway '192.168.48.2' ipv4.dns '114.114.114.114'
[root@server ~]# nmcli c up ens160
[root@server ~]# ip a
ipv4.method manual:手动获取
(6)增加IP地址
[root@server ~]# nmcli c mod ens160 +ipv4.addresses 192.168.48.136/24
[root@server ~]# nmcli c up ens160
[root@server ~]# ip a
(7)删除网络连接
# 删除上例的ens161
[root@server ~]# nmcli c show
NAME UUID TYPE DEVICE
ens160 0f83fcfd-bc6d-3866-b82b-fc4b09df2068 ethernet ens160
ens161 37bc8e79-92ea-4c01-a4af-1dfd7c687014 ethernet --
[root@server ~]# nmcli c del ens161
成功删除连接 "ens161" (37bc8e79-92ea-4c01-a4af-1dfd7c687014)。
[root@server ~]# nmcli c show
NAME UUID TYPE DEVICE
ens160 0f83fcfd-bc6d-3866-b82b-fc4b09df2068 ethernet ens160
(8)修改配置文件
[root@server ~]# cd /etc/NetworkManager/system-connections
[root@server system-connections]# ls
ens160.nmconnection
[root@server system-connections]# vim ens160.nmconnection
[connection]
id=ens160
uuid=d97d603d-5bb5-3d11-bfeb-11fbc8cb867d
type=ethernet
autoconnect-priority=-999
interface-name=ens160
timestamp=1682493359
[ethernet]
[ipv4]
address1=192.168.48.134/24,192.168.48.2
dns=114.114.114.114;
method=manual
[ipv6]
addr-gen-mode=eui64
method=auto
[proxy]
[root@server ~]# nmcli c reload
[root@server ~]# nmcli c up ens160
# 会话和网卡的关系:一个网卡可以有多个会话,但是一个时刻只能连接到一个会话
(9)可视化配置
3.ping命令
(1)作用
用来检测网络的连通情况和分析网络速度
根据域名得到服务器 IP
根据 ping 返回的 TTL 值来判断对方所使用的操作系统及数据包经过路由器数量
格式
ping -参数 目标主机IP或域名
(2)参数
-c 数字:用于设定本命令发出的ICMP消息包的数量,若无此选项,则会无限次发送消息包直到用户按【Ctrl+C】组合键才终止命令。
-s 字节数:设置ping命令发出的消息包的大小,默认发送的测试数据大小为56字节;自动添加8字节的ICMP协议头后,显示的是64字节;再添加20字节的IP协议头,则显示的为84字节。最大设置值为65507B
-i 时间间隔:设定前后两次发送ICMP消息包之间的时间间隔,无此选项时,默认时间间隔为1秒。为了保障本机和目标主机的安全,一般不要小于0.2秒
-t:设置存活时间TTL(Time To Live)
[root@server ~]# ping -c 2 www.baidu.com
(3) 显示内容分析
bytes 值:数据包大小,也就是字
time 值:响应时间,时间越小,速度越快
TTL 值:Time To Live, 表示 DNS 记录在 DNS 服务器上存在的时间,它是 IP 协议包的一个值,告诉路由器该数据包何时需要被丢弃。通过TTL 值判断目标系统类型:默认情况下,Linux 系统的 TTL值为 64 或 255,win11 系统值为644,UNIX 主机的 TTL 值为 255
四.通过域名访问主机
1.静态解析
(1)作用: 通过配置/etc/hosts文件实现域名解析
(2)方法