Linux系统网络管理学习.2
目录
一、学习目标与适用场景
二、网络管理基础概念
1. NetworkManager服务
2. 核心管理工具
三、NetworkManager服务管理(基础操作)
1. 服务状态控制
四、网络参数配置(IP/DNS/网关)
1. 图形化配置(仅了解,服务器不推荐)
基础操作(以传统图形工具为例):
2. 命令行配置(核心重点)
(1)传统工具(逐步淘汰,但需了解)
① ifconfig(查看/临时配置网卡)
② ifup/ifdown(基于配置文件启停网卡)
③ 子接口配置(单网卡多IP,传统方式)
④ ip命令(推荐查看网卡信息,替代ifconfig)
(2)配置文件配置(永久生效,推荐重点掌握)
① 单一IP地址配置
模式1:自动获取IP(DHCP,需网络中有DHCP服务器)
模式2:手动配置静态IP(推荐服务器使用)
② 多IP地址配置
③ 验证配置是否生效
3. 路由配置(静态路由,高级场景)
(1)route命令(传统方式,逐步被ip route取代)
(2)ip route命令(推荐,更现代)
五、网络连接查看与管理
1. 查看网络连接状态
(1)nmcli(推荐,命令行)
(2)传统工具(辅助)
2. 启用/禁用网络连接
六、网卡绑定(Bonding,高可用配置)
1. 什么是网卡绑定?
2. Rocky Linux 9 配置步骤(使用nmcli,推荐)
前置条件:
操作流程(以LACP模式(802.3ad)为例,其他模式见下文):
步骤1:查看可用网卡
步骤2:创建Bond逻辑网卡
其他常用Bond模式(通过mode参数指定):
步骤3:添加物理网卡为从属接口
步骤4:激活Bond连接
步骤5:验证配置
步骤6:配置其他Bonding模式(示例)
3. 完整自动化脚本(可选)
一、学习目标与适用场景
文档学习Linux系统(以Rocky Linux 9为核心,兼容CentOS/RHEL等主流发行版)的网络配置与管理技能,涵盖从基础概念到应用的知识体系。
- •
配置静态IP/DNS/网关(临时和永久生效);
- •
管理网络连接(启用/禁用/查看状态);
- •
诊断网络问题(抓包、路由追踪、服务测试);
- •
实现网卡高可用(Bonding绑定技术);
- •
适配服务器和桌面环境的不同需求。
二、网络管理基础概念
1. NetworkManager服务
- •
作用:Linux系统默认的网络管理“大脑”,负责自动管理网卡连接、IP分配、网络状态监控等。
- •
优势:支持动态网络切换(如WiFi/有线自动切换)、开机自动联网,适合服务器和桌面环境(尤其是需要稳定联网的场景)。
- •
版本差异:Linux 7及之前版本可能默认使用传统
network
服务,但从Linux 8开始,官方统一推荐使用NetworkManager
(包括服务器环境)。
2. 核心管理工具
工具/命令 | 类型 | 适用场景 | 特点 |
---|---|---|---|
nmcli | 命令行工具 | 服务器/生产环境(推荐) | NetworkManager的命令行接口,功能强大、支持脚本化,可远程操作且配置永久生效。 |
nmtui | 文本图形界面 | 不熟悉命令的用户(辅助) | 通过文本菜单交互配置网络,比纯命令更直观(但仍需基础操作知识)。 |
ifconfig | 传统命令 | 旧系统/临时查看(逐步淘汰) | 查看/临时配置网卡IP(重启后失效),需安装 |
ip | 现代命令 | 推荐查看网卡信息(替代ifconfig) | 功能更强大,支持查看未启用的网卡、多IP配置等,无需额外安装。 |
route/ip route | 路由配置 | 静态路由设置 | 管理系统的路由表(如指定访问特定网络的网关)。 |
⚠️ 重要原则:生产环境中优先使用
nmcli
或配置文件(如/etc/sysconfig/network-scripts/ifcfg-*
),避免直接用ip
/ifconfig
临时修改(重启后可能失效,且易引发配置冲突)。
三、NetworkManager服务管理(基础操作)
NetworkManager是网络管理的核心服务,所有高级配置(如nmcli)都依赖它正常运行。以下是服务控制的关键命令:
1. 服务状态控制
# 查看服务是否运行(重点关注"active (running)"状态)
systemctl status NetworkManager# 启动服务(立即生效,但重启后失效)
systemctl start NetworkManager# 停止服务(谨慎使用!会导致所有网络连接断开)
systemctl stop NetworkManager# 重启服务(修改配置后必须执行,使新配置生效)
systemctl restart NetworkManager# 设置开机自动启动(推荐正常使用)
systemctl enable NetworkManager# 禁止开机自动启动(彻底禁用)
systemctl disable NetworkManager# 一键操作:关闭服务且禁止开机自启(完全禁用)
systemctl disable --now NetworkManager# 一键操作:启动服务并设置开机自启(正常启用)
systemctl enable --now NetworkManager# 检查是否配置了开机自启
systemctl is-enabled NetworkManager # 返回"enabled"表示已设置
📌 注意:如果服务未运行(
systemctl status
显示inactive (dead)
),所有nmcli
命令将无法生效,需先启动服务。
四、网络参数配置(IP/DNS/网关)
1. 图形化配置(仅了解,服务器不推荐)
在Linux 7及之前版本中,通常通过图形界面工具(如“网络设置”)管理网络;但从Linux 8开始,官方统一推荐使用NetworkManager
(命令行或文本界面)。图形化配置适合桌面用户,但服务器通常无图形界面,且配置不易保存,本部分仅作了解。
基础操作(以传统图形工具为例):
- •
通过系统菜单进入“网络设置” → 选择网卡 → 设置IP(静态/DHCP)、网关、DNS。
- •
缺点:配置可能因系统更新或重装丢失,且不适合远程管理。
2. 命令行配置(核心重点)
(1)传统工具(逐步淘汰,但需了解)
① ifconfig(查看/临时配置网卡)
- •
作用:查看网卡的IP地址、子网掩码等信息,或临时配置IP(重启网络服务、网卡或主机后失效)。
- •
限制:默认不显示未启用的网卡;普通用户只能查看,需
root
权限修改;新系统(如CentOS 8+)可能未预装,需运行yum install net-tools
安装。
常用命令:
# 查看所有网卡信息(包括未启用的网卡,关键!)
ifconfig -a# 临时配置网卡IP(例如ens33设为192.168.1.100/24)
ifconfig ens33 192.168.1.100/24# 启用网卡(不重新读取配置文件)
ifconfig ens33 up# 禁用网卡
ifconfig ens33 down
⚠️ 注意:临时配置仅在当前会话有效,重启网络服务(
systemctl restart network
)、网卡或主机后会丢失!
② ifup/ifdown(基于配置文件启停网卡)
- •
作用:通过读取网卡的配置文件(如
/etc/sysconfig/network-scripts/ifcfg-ens33
)启动或停止网卡,配置永久生效(但需手动触发)。
常用命令:
# 启动网卡(根据配置文件设置IP等参数)
ifup ens33# 停止网卡
ifdown ens33
③ 子接口配置(单网卡多IP,传统方式)
- •
作用:通过创建虚拟子接口(如
ens33:0
)为单块物理网卡绑定多个IP地址,但需手动配置文件,且不能使用DHCP(只能静态IP)。
操作步骤:
# 1. 进入网卡配置目录
cd /etc/sysconfig/network-scripts# 2. 复制主网卡配置文件创建子接口(例如基于ens33创建ens33:0)
cp ifcfg-ens33 ifcfg-ens33:0# 3. 修改子接口配置(静态IP示例)
vim ifcfg-ens33:0
配置文件内容示例(关键字段):
TYPE=Ethernet
BOOTPROTO=static # 必须为static(不能是dhcp)
NAME=ens33:0
DEVICE=ens33:0
ONBOOT=yes # 开机启动
IPADDR=192.168.1.200 # 子接口IP(与主IP不同)
PREFIX=24 # 子网掩码位数(等同于255.255.255.0)
# 注意:不能配置DHCP或GATEWAY(避免冲突)
生效命令:
ifdown ens33:0 && ifup ens33:0 # 重启子接口
④ ip命令(推荐查看网卡信息,替代ifconfig)
- •
作用:功能比
ifconfig
更强大,支持查看未启用的网卡、多IP配置等,且无需额外安装(新系统默认预装)。
常用命令:
# 查看所有网卡及IP信息(最常用,推荐!)
ip a# 简写形式(等价于ip a)
ip address
输出示例:会显示所有网卡(包括未启用的),以及每个网卡的IP地址、子网掩码、状态等详细信息。
(2)配置文件配置(永久生效,推荐重点掌握)
网络参数的永久配置通过修改网卡的配置文件实现,路径为:
/etc/sysconfig/network-scripts/ifcfg-网卡名
(例如ifcfg-ens33
,网卡名可通过ip a
或nmcli device status
查看)。
配置文件生效方式:
- •
修改后需重启网络服务(
systemctl restart network
),或单独启停网卡(ifup 网卡名
/ifdown 网卡名
)。
① 单一IP地址配置
模式1:自动获取IP(DHCP,需网络中有DHCP服务器)
vim /etc/sysconfig/network-scripts/ifcfg-ens33
配置文件内容示例:
TYPE=Ethernet # 网卡类型(固定为Ethernet)
BOOTPROTO=dhcp # IP获取方式:dhcp(自动)、static(手动)、none(不配置)
NAME=ens33 # 网卡描述名(可自定义,无严格要求)
DEVICE=ens33 # 必须与实际网卡名一致(通过ip a查看!)
ONBOOT=yes # 是否开机启动(yes/no)
📌 说明:
BOOTPROTO=dhcp
时,系统会自动从DHCP服务器获取IP、网关和DNS(无需手动配置)。
模式2:手动配置静态IP(推荐服务器使用)
TYPE=Ethernet
BOOTPROTO=static # 手动配置
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.100 # IP地址(例如192.168.1.100)
PREFIX=24 # 子网掩码位数(等同于255.255.255.0)
# 或使用NETMASK(二选一):
# NETMASK=255.255.255.0
GATEWAY=192.168.1.1 # 默认网关(同一系统建议只配一个)
DNS1=8.8.8.8 # 首选DNS服务器
# DNS2=8.8.4.4 # 可选备用DNS(多网卡时避免冲突)
⚠️ 关键点:
- •
BOOTPROTO=static
表示手动配置,需明确填写IPADDR
、PREFIX
(或NETMASK
)、GATEWAY
、DNS
等参数。- •
DEVICE
必须与实际网卡名一致(例如通过ip a
看到网卡名为ens33
,则此处必须写ens33
)。- •
ONBOOT=yes
表示开机自动启用该配置。
② 多IP地址配置
在同一个网卡配置文件中,通过添加IPADDR1
、PREFIX1
、IPADDR2
等字段配置多个IP地址(适用于需要单网卡绑定多个IP的场景)。
配置文件示例:
TYPE=Ethernet
BOOTPROTO=static
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR1=192.168.1.100 # 主IP
PREFIX1=24
GATEWAY=192.168.1.1
DNS1=8.8.8.8
IPADDR2=192.168.1.101 # 辅助IP
PREFIX2=24
DNS2=8.8.4.4
DNS3=114.114.114.114
生效命令:
systemctl restart network # 重启网络服务(影响所有网卡)
# 或单独重启该网卡:
ifdown ens33 && ifup ens33
③ 验证配置是否生效
# 查看IP地址(确认配置的IP已绑定)
ip a
# 或
ifconfig# 查看默认网关
route -n# 查看DNS配置
cat /etc/resolv.conf
输出示例:
- •
ip a
中会显示网卡的inet
字段包含配置的IP(如192.168.1.100/24
)。 - •
route -n
中会显示0.0.0.0
对应的网关地址(如192.168.1.1
)。 - •
cat /etc/resolv.conf
中会显示配置的DNS服务器(如nameserver 8.8.8.8
)。
3. 路由配置(静态路由,高级场景)
路由表决定了数据包如何从本地网络转发到目标网络(例如访问外网需经过网关)。静态路由需手动配置,常用于多网段互联或特殊网络拓扑。
(1)route命令(传统方式,逐步被ip route取代)
- •
作用:查看或设置Linux内核的静态路由表(临时生效,重启后丢失)。
常用命令:
# 查看当前路由表(-n表示以数字形式显示IP,不解析主机名)
route -n# 添加路由(例如访问192.168.2.0/24网络需经过网关192.168.1.254)
route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.1.254# 删除路由
route del -net 192.168.2.0 netmask 255.255.255.0
参数说明:
- •
-net
:目标是一个网络(如192.168.2.0/24
)。 - •
-host
:目标是一个具体主机(如192.168.2.100
)。 - •
gw
:指定下一跳网关地址。
(2)ip route命令(推荐,更现代)
# 查看路由表(推荐)
ip route# 添加静态路由(示例:访问192.168.2.0/24走网关192.168.1.254)
ip route add 192.168.2.0/24 via 192.168.1.254# 删除静态路由
ip route del 192.168.2.0/24
📌 提示:若需永久生效,需将路由命令写入启动脚本(如
/etc/rc.local
),或通过NetworkManager的高级配置实现(较复杂,服务器通常手动维护)。
五、网络连接查看与管理
1. 查看网络连接状态
(1)nmcli(推荐,命令行)
# 查看所有已保存的网络连接(包括未激活的配置)
nmcli connection show# 查看当前活动的连接(正在使用的连接)
nmcli connection show --active# 查看某个连接的详细信息(如ens33)
nmcli connection show ens33
(2)传统工具(辅助)
# 查看网卡状态(是否连接、IP地址等)
ip a# 查看路由表(确认网络可达性)
ip route# 查看DNS配置
cat /etc/resolv.conf
2. 启用/禁用网络连接
# 启动某个连接(如ens33,根据配置文件中的名称)
nmcli connection up ens33# 停止某个连接
nmcli connection down ens33
📌 说明:连接名称可通过
nmcli connection show
查看(例如可能是ens33
、Wired connection 1
等)。
六、网卡绑定(Bonding,高可用配置)
1. 什么是网卡绑定?
网卡绑定(Bonding)是将多个物理网卡组合成一个逻辑网卡的技术,实现以下目标:
- •
高可用:当一块网卡故障时,自动切换到另一块网卡(如服务器双网卡冗余)。
- •
负载均衡:多块网卡同时传输数据,提升网络吞吐量(如高并发服务器)。
绑定模式(Mode)决定了具体的工作方式(如主备、轮询、LACP等),需根据网络环境和交换机支持情况选择。
2. Rocky Linux 9 配置步骤(使用nmcli,推荐)
前置条件:
- •
至少两块物理网卡(例如
ens192
和ens224
)。 - •
确认网卡名称(通过
nmcli device status
查看)。 - •
具有
root
权限(所有命令需sudo
或root用户执行)。
操作流程(以LACP模式(802.3ad)为例,其他模式见下文):
步骤1:查看可用网卡
nmcli device status
输出示例:
DEVICE TYPE STATE CONNECTION
ens192 ethernet disconnected --
ens224 ethernet disconnected --
lo loopback unmanaged --
记下要绑定的网卡名(如ens192
和ens224
)。
步骤2:创建Bond逻辑网卡
根据需求选择绑定模式(以下以LACP(802.3ad,需交换机支持)为例):
nmcli connection add type bond con-name bond0 ifname bond0 \mode 802.3ad \ip4 192.168.1.100/24 \gw4 192.168.1.1 \ipv4.dns "8.8.8.8,1.1.1.1" \ipv4.method manual
参数说明:
- •
type bond
:创建绑定连接。 - •
con-name bond0
:绑定连接的名称(自定义,如bond0
)。 - •
ifname bond0
:绑定后的逻辑网卡名(通常为bond0
)。 - •
mode 802.3ad
:LACP模式(需交换机配置LACP聚合)。 - •
ip4
/gw4
/ipv4.dns
:静态IP配置(若用DHCP则改为ipv4.method auto
)。
其他常用Bond模式(通过mode
参数指定):
模式编号 | NMCLI参数值 | 中文名称 | 特点 | 适用场景 |
---|---|---|---|---|
0 | balance-rr | 轮询 | 数据包依次从各网卡发送,负载均衡但需交换机端口聚合支持。 | 需要负载均衡且交换机支持聚合 |
1 | active-backup | 主备 | 仅一块网卡工作,故障时自动切换,无需交换机配置(高可用首选)。 | 服务器高可用(无交换机要求) |
4 | 802.3ad | 动态链路聚合 | 标准LACP模式,与交换机动态协商聚合链路,提供最佳性能与可靠性。 | 企业级数据中心(需交换机LACP) |
6 | balance-alb | 自适应负载均衡 | 出入流量均负载均衡,无需交换机配置(CPU占用略高)。 | 无交换机支持的高可用 |
5 | balance-tlb | 自适应传输负载均衡 | 仅出口流量均衡,入口流量由当前网卡处理(容错能力较弱)。 | 特定流量优化场景 |
2 | balance-xor | 异或负载均衡 | 基于MAC地址计算选择网卡,保证数据包顺序但流量可能不均。 | 特定应用需求 |
步骤3:添加物理网卡为从属接口
将实际的物理网卡(如ens192
和ens224
)绑定到逻辑网卡bond0
:
# 添加第一个从属网卡(ens192)
nmcli connection add type bond-slave con-name bond-slave-ens192 ifname ens192 master bond0# 添加第二个从属网卡(ens224)
nmcli connection add type bond-slave con-name bond-slave-ens224 ifname ens224 master bond0
步骤4:激活Bond连接
nmcli connection up bond0
激活后,逻辑网卡bond0
将作为主接口工作,物理网卡ens192
和ens224
作为从属接口协同工作。
步骤5:验证配置
# 查看设备状态(确认bond0和从属网卡已连接)
nmcli device status
# 正常输出应包含:
# DEVICE TYPE STATE CONNECTION
# bond0 bond connected bond0
# ens192 ethernet connected bond-slave-ens192
# ens224 ethernet connected bond-slave-ens224# 查看bond详细状态(关键信息:网卡角色、流量分配)
cat /proc/net/bonding/bond0
# 输出会显示当前活跃网卡、备用网卡、链路状态等# 检查bond0的IP地址
ip addr show bond0# 测试网络连通性(确认绑定生效)
ping -c 4 8.8.8.8
步骤6:配置其他Bonding模式(示例)
若需使用其他模式(如主备模式),只需修改mode
参数:
# 主备模式(active-backup,mode 1)
nmcli connection add type bond con-name bond0 ifname bond0 \mode active-backup \ip4 192.168.1.100/24 \gw4 192.168.1.1 \ipv4.method manual# 轮询模式(balance-rr,mode 0)
nmcli connection add type bond con-name bond0 ifname bond0 \mode balance-rr \ip4 192.168.1.100/24 \gw4 192.168.1.1 \ipv4.method manual# 自适应负载均衡(balance-alb,mode 6)
nmcli connection add type bond con-name bond0 ifname bond0 \mode balance-alb \ip4 192.168.1.100/24 \gw4 192.168.1.1 \ipv4.method manual