Linux系统的网络管理(一)

一、网络参数配置:搭建稳定网络基础

网络参数配置是 Linux 网络管理的起点,根据操作方式可分为图形化配置、命令行配置和配置文件配置,不同方式适用于不同场景(临时调试 / 永久生效)。

1. 图形化配置:依赖 NetworkManager 服务

NetworkManager 是 Linux 系统中主流的图形化网络管理工具,但不同系统版本对其依赖不同:

  • Linux 7 系统:建议停止该服务,避免与其他配置方式冲突;
  • Linux 8 及以上系统:统一由 NetworkManager 管理网络,无需手动关闭。

2. 命令行配置:灵活调试临时生效

命令行配置适用于临时调整网络参数(重启网络 / 主机后失效),核心工具包括ifconfigifup/ifdownip address

2.1 ifconfig:经典网卡配置工具

  • 功能:查看 / 修改网卡参数(如 IP 地址),但无法查看未启用网卡及配置文件中的多 IP。
  • 权限:root 用户可修改参数,普通用户仅能查看。
选项 作用 案例
-a 查看所有网卡(含未启用) ifconfig -a
up 启用网卡(不读配置文件) ifconfig ens33 up
down 停用网卡 ifconfig ens33 down
直接配置 IP 临时设置网卡 IP ifconfig ens33 192.168.115.136/24

2.2 ifup/ifdown:基于配置文件的启停

ifconfig up/down的核心区别是:会读取网卡配置文件,适用于基于配置文件的参数加载。

复制代码
# 启用网卡并加载配置
ifup ens33
# 停用网卡
ifdown ens33

# 子接口配置(单网卡多IP临时方案)
ifconfig ens33:0 192.168.115.214/24
# 子接口永久配置(复制配置文件修改)
cd /etc/sysconfig/network-scripts
cp ifcfg-ens33 ifcfg-ens33:0
# 编辑子接口文件:修改NAME、DEVICE、IPADDR等参数
vim ifcfg-ens33:0
# 重启子接口生效
ifdown ens33:0 && ifup ens33:0

2.3 ip address:现代网络参数查看工具

ip a(缩写)是ifconfig的替代工具,功能更全面:

  • 可查看未启用网卡;
  • 支持查看配置文件中的多 IP 配置;
  • 语法简洁:ip a(直接查看所有网卡参数)。

3. 配置文件配置:永久生效的核心方式

通过修改网卡配置文件(路径:/etc/sysconfig/network-scripts/ifcfg-网卡名),可实现网络参数的永久生效,需重启网卡或网络服务加载配置。

3.1 单一 IP 地址配置

分为 DHCP 自动获取和静态手动配置两种模式:

配置项 含义 DHCP 模式 静态模式
TYPE 网卡类型 Ethernet Ethernet
BOOTPROTO IP 获取方式 dhcp static
NAME 网卡描述(可选) ens33 ens33
DEVICE 网卡设备名(必对) ens33 ens33
ONBOOT 是否启用配置 yes yes
IPADDR IP 地址(静态需填) - 192.168.115.150
PREFIX/NETMASK 子网掩码 - PREFIX=24 或 NETMASK=255.255.255.0
GATEWAY 默认网关(建议单网关) - 192.168.115.2
DNS1 DNS 服务器(多网卡慎填) - 192.168.115.2

3.2 多 IP 地址配置

在单一配置文件中通过IPADDR1/PREFIX1IPADDR2/PREFIX2实现多 IP:

复制代码
vim /etc/sysconfig/network-scripts/ifcfg-ens33
# 核心配置(新增部分)
IPADDR1=192.168.115.150
PREFIX1=24
IPADDR2=192.168.115.151
PREFIX2=24
DNS2=192.168.115.3
# 加载配置生效
systemctl restart network 或 ifdown ens33 && ifup ens33

3.3 配置验证命令

复制代码
# 验证IP地址
ifconfig 或 ip a
# 验证网关
route -n
# 验证DNS
cat /etc/resolv.conf

二、nmcli 命令详解

1. 概述

nmcli 是 NetworkManager 的命令行工具,用于配置和管理网络连接。使用前需确保 NetworkManager 服务正常运行,且避免与 ip addr 等命令冲突。

2. 基本格式

复制代码
nmcli [OPTIONS] OBJECT { COMMAND | help }
  • OPTIONS :控制输出格式(如 -t 简洁模式、-f 指定字段)
  • OBJECT :操作对象(如 generaldeviceconnection
  • COMMAND :具体操作(如 statusupdown

3. 常用系统指令

NetworkManager 服务管理命令:

复制代码
# 查看状态
systemctl status NetworkManager

# 启动/重启/停止
systemctl start/restart/stop NetworkManager

# 开机启动配置
systemctl enable/disable NetworkManager

4. 核心操作对象

(1)networking(网络状态)

查看和控制整体网络连接状态:

复制代码
nmcli networking         # 查看是否接管网络
nmcli n connectivity     # 检查连接状态(full/limited/portal/none/unknown)
nmcli n on/off           # 开启/关闭网络
(2)general(系统状态)

查看系统网络概览和主机名设置:

复制代码
nmcli general status     # 显示系统网络状态
nmcli g hostname         # 查看主机名
nmcli g h newHostName    # 修改主机名(需重启服务)
(3)connection(连接配置)

管理网络连接配置(可简写为 c):

复制代码
# 查看连接
nmcli c show             # 所有连接
nmcli c s -a             # 仅活动连接

# 控制连接
nmcli c up ens33         # 启动连接
nmcli c down ens33       # 关闭连接
nmcli c delete ens33     # 删除连接

# 修改连接(静态IP配置示例)
nmcli c m ens33 ipv4.address 192.168.80.10/24
nmcli c m ens33 ipv4.gateway 192.168.80.2
nmcli c m ens33 ipv4.dns 8.8.8.8
nmcli c m ens33 ipv4.method manual  # 设为静态模式

# 新增连接
nmcli c a type ethernet con-name ens36 ifname ens36 \
  ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 \
  ipv4.dns "8.8.8.8 8.8.4.4" ipv4.method manual
(4)device(网络设备)

管理物理网络设备(可简写为 d):

复制代码
nmcli d status           # 查看设备状态
nmcli d connect ens33    # 连接设备
nmcli d disconnect ens33 # 断开设备
nmcli d wifi list        # 查看附近WiFi
nmcli d wifi connect "SSID" password "密码"  # 连接WiFi

三、网络配置方法

方法一:修改 keyfile 配置文件

Rocky9 配置文件位于 /etc/NetworkManager/system-connections/,格式为 keyfile:

  1. 编辑对应接口文件(如 ens33.nmconnection

  2. 配置核心字段:

    复制代码
    (connection)
    id=ens33
    uuid=1c0d8661-d96c-3ecd-8578-eba771cadac4
    type=ethernet
    autoconnect-priority=-999
    interface-name=ens33
    
    (ipv4)
    method=manual
    address=192.168.1.3/24,192.168.1.1
    netmask=255.255.255.0
    gateway=192.168.1.1
    dns=8.8.8.8;114.114.114.114
    route1=10.1.0.0/16,192.168.1.1
    route2=10.2.0.0/16,192.168.1.1
  3. 加载并激活:

    复制代码
    nmcli c load /etc/NetworkManager/system-connections/ens33.nmconnection
    nmcli c up ens33

配置字段解析:

  • id:用于标识该网络连接的名称,可自定义,方便用户识别和管理不同的网络连接,通常与网络接口名称相关.

  • uuid:通用唯一识别码,由系统自动生成,用于在NetworkManager中唯一标识该网络连接配置,一般无需手动修改.

  • type:指定网络连接的类型,常见的值有"ethernet"表示以太网连接,"wifi"表示无线网络连接等,根据实际网络设备和连接方式进行选择.

  • autoconnect-priority:设置网络连接的自动连接优先级,数值越小优先级越高,-999表示较低的优先级。可根据需要调整该值来确定多个网络连接的顺序,以便在系统启动时优先连接重要的网络.

  • interface-name:必须与实际的网络接口设备名称一致,用于将网络连接配置与对应的物理网络接口关联起来,如"ens33"等.

  • method:获取IP地址的方式,常见的值有"auto"表示自动获取IP地址,通常通过DHCP等方式从网络中的DHCP服务器获取IP地址、子网掩码、网关等网络配置信息;"manual"表示手动配置静态IP地址,需要手动指定IP地址、子网掩码、网关和DNS等信息.

  • address:当method为manual时,用于指定静态IP地址和子网掩码,格式为"IP地址/子网掩码长度",还可以在后面添加网关地址,用逗号分隔,如"192.168.1.10/24,192.168.1.1".

  • netmask:子网掩码,也可以在address参数中统一配置,若单独配置则需按照子网掩码的格式填写,如"255.255.255.0".

  • gateway:网关地址,用于指定网络数据包的转发地址,需与所在网络环境的网关配置一致.

  • dns:指定DNS服务器地址,多个DNS服务器之间用分号分隔,如"8.8.8.8;114.114.114.114".

  • route:可用于添加静态路由,格式为"网段,网关",可以添加多条route来配置多个静态路由,例如"route1=10.1.0.0/16,192.168.1.2 route2=10.2.0.0/16,192.168.1.2".