当前位置: 首页 > ds >正文

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(重启后失效),需安装net-tools包(新系统可能未预装)。

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 anmcli 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表示手动配置,需明确填写IPADDRPREFIX(或NETMASK)、GATEWAYDNS等参数。

  • DEVICE必须与实际网卡名一致(例如通过ip a看到网卡名为ens33,则此处必须写ens33)。

  • ONBOOT=yes表示开机自动启用该配置。

② 多IP地址配置

在同一个网卡配置文件中,通过添加IPADDR1PREFIX1IPADDR2等字段配置多个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查看(例如可能是ens33Wired connection 1等)。


六、网卡绑定(Bonding,高可用配置)

1. 什么是网卡绑定?

网卡绑定(Bonding)是将多个物理网卡组合成一个逻辑网卡的技术,实现以下目标:

  • 高可用​:当一块网卡故障时,自动切换到另一块网卡(如服务器双网卡冗余)。

  • 负载均衡​:多块网卡同时传输数据,提升网络吞吐量(如高并发服务器)。

绑定模式(Mode)决定了具体的工作方式(如主备、轮询、LACP等),需根据网络环境和交换机支持情况选择。


2. Rocky Linux 9 配置步骤(使用nmcli,推荐)

前置条件:
  • 至少两块物理网卡(例如ens192ens224)。

  • 确认网卡名称(通过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     --

记下要绑定的网卡名(如ens192ens224)。

步骤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:添加物理网卡为从属接口

将实际的物理网卡(如ens192ens224)绑定到逻辑网卡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将作为主接口工作,物理网卡ens192ens224作为从属接口协同工作。

步骤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

http://www.xdnf.cn/news/19032.html

相关文章:

  • Wireshark捕获数据的四种层次
  • IUV5G专网排障(下)
  • git submodule的基本使用
  • 【软考论文】论领域驱动开发方法(DDD)的应用
  • 为什么的中小企业很难承受“大型系统”的成本
  • 基于 MediaPipe + Three.js 的实时姿态可视化前端
  • 论文阅读:CIKM 2024 Empowering Private Tutoring by Chaining Large Language Models
  • 【7】SQL 语句基础应用
  • 运算符(2)
  • AT_abc401_f [ABC401F] Add One Edge 3
  • 传统联邦 VS 联邦+大模型
  • 学习做动画4.回转运动
  • springboot实现合同生成
  • C++ SNIFE
  • JVM之【运行时数据区】
  • Nginx访问限制学习笔记
  • 论文学习日志——忆阻器与神经网络——part1
  • 基于XiaothinkT6语言模型的文本相似度计算:轻量方案实现文本匹配与去重
  • AT_abc403_f [ABC403F] Shortest One Formula
  • 阿里云docker搭建的mysql无法访问
  • Docker化性能监控平台搭建:JMeter+InfluxDB+Grafana全攻略
  • GRPO算法:告别PPO内存炸弹,无需价值函数,用组内排名代替绝对评分
  • NUMA架构
  • Java大厂面试全解析:从Spring Boot到微服务架构实战
  • 矩阵初等变换的几何含义
  • 【LeetCode】动态规划——542.01 矩阵
  • 系统设计(数据库/微服务)
  • 计算机网络的发展演进历程
  • 2 梯度下降算法
  • 英伟达 Spectrum-XGS:重构 AI 基础设施,开启跨域超级工厂时代