Linux中网络管理器使用速查手册

作者:袖梨 2026-07-02

前言

在 Windows 系统中配置网卡的 IP 等参数非常的方便,但在 Linux 命令行界面下配置网卡参数却显得困难重重。而这困难的原因:一方面是因为 Linux 的网络管理器版本较多且用法各异,另一方面则是因为不同的 Linux 发行版所采用的网络管理器大都不尽相同。于是在这两个原因的共同作用下,变更 Linux 网卡的 IP 竟成了我的心魔,为了使得念头通达,遂决定整理此文以除心魔 

Linux中网络管理器用法速查手册

1、ip/ifconfig

工具介绍:通过命令执行的方式直接管理网卡,优点就是快、参数立即生效,缺点就是重启系统参数全丢又需要重新配置。

配置文件:无

动态 IP:

# 借助 ifconfig 配置网卡ifconfig eth0 0.0.0.0      # 1. 释放并清空网卡当前的 IPdhclient eth0              # 2. 调用 dhclient 协议向网络索要 IP# 借助 ip 配置网卡ip addr flush dev eth0     # 1. 释放并清空网卡当前的 IPdhclient eth0              # 2. 调用 dhclient 协议向网络索要 IP

静态 IP:

# 借助 ifconfig 配置网卡ifconfig eth0 192.168.1.100 netmask 255.255.255.0       # 同时配置 IP 和 子网掩码route add default gw 192.168.1.1 eth0                   # 配置默认网关(ifconfig 自身不能配网关,必须借助 route 命令)# 借助 ip 配置网卡ip addr add 192.168.1.100/24 dev eth0                   # 同时配置 IP 和 子网掩码ip route add default via 192.168.1.1 dev eth0           # 配置默认网关(ip 自身不能配网关,必须借助 route 命令)

启停命令:

# 借助 ifconfig 启停网卡ifconfig eth0 up       # 启动网卡ifconfig eth0 down     # 关闭网卡# 借助 ip 启停网卡ip link set eth0 up    # 启动网卡ip link set eth0 down  # 关闭网卡

2、ifcfg

工具介绍:通过脚本解析配置文件的方式管理网卡,每一个网卡均对应着一个文件,配置文件简单易读。

配置文件:

/etc/sysconfig/├── network                  <-- 全局网络配置文件(如主机名、全局网关)└── network-scripts/         <-- ifcfg 机制的核心目录(最重要)    ├── ifcfg-eth0           <-- 网卡 eth0 的具体配置文件(核心)    ├── ifcfg-lo             <-- 本地环回接口的配置文件    ├── ifdown -> ./ifdown-eth  <-- 符号链接,指向具体的关闭脚本    ├── ifdown-eth           <-- 关闭以太网卡的底层脚本    ├── ifdown-post          <-- 网卡关闭后执行的清理脚本    ├── ifup -> ./ifup-eth   <-- 符号链接,指向具体的启动脚本    ├── ifup-eth             <-- 启动以太网卡的底层脚本    └── ifup-post            <-- 网卡启动后执行的后处理脚本

动态 IP:

# cat /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0TYPE=EthernetONBOOT=yesBOOTPROTO=dhcp

静态 IP:

# cat /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0TYPE=EthernetONBOOT=yesBOOTPROTO=staticIPADDR=192.168.1.100NETMASK=255.255.255.0GATEWAY=192.168.1.1DNS1=8.8.8.8DNS2=1.1.1.1

启停命令:

# 启动单个网卡ifup eth0# 关闭单个网卡ifdown eth0# 重启整个网络的所有网卡/etc/init.d/network restart

3、ifupdown

工具介绍:通过脚本解析配置文件的方式管理网卡,可以通过一个文件集中管理所有网卡的配置信息,也可以分割开来单独管理,灵活性较高。【注:可以将其看作是 ifcfg 的升级版,因为两者的区别仅仅在于配置文件参数格式的不同,启停网卡以及目录结构上都非常的相像。】

目录结构:

/etc/network/├── interfaces               <-- 主配置文件(核心)├── interfaces.d/            <-- 用户自定义子配置目录(常用于模块化管理)│   ├── eth0│   └── wlan0├── if-pre-up.d/             <-- 网卡激活前,自动执行的脚本目录├── if-up.d/                 <-- 网卡激活后,自动执行的脚本目录├── if-down.d/               <-- 网卡关闭前,自动执行的脚本目录└── if-post-down.d/          <-- 网卡关闭后,自动执行的脚本目录

注:一定要检查 /etc/network/interfaces 文件中是否包含 source /etc/network/interfaces.d/*,否则 interfaces.d 目录下的配置不生效。

动态 IP:

# cat /etc/network/interfaces.d/eth0auto eth0iface eth0 inet dhcp

静态 IP:

# cat /etc/network/interfaces.d/eth0auto eth0iface eth0 inet static    address 192.168.1.100/24    gateway 192.168.1.1    dns-nameservers 8.8.8.8 1.1.1.1

启停命令:

# 启动单个网卡ifup eth0# 关闭单个网卡ifdown eth0# 重启整个网络的所有网卡/etc/init.d/networking restart

4、NetworkManager

工具介绍:以服务的方式管理网卡,基于此服务还可配合多种工具去管理网卡,如配套的 nmcli、nmtui、或 netplan、或直接修改 /etc/NetworkManager/system-connections/eth0.nmconnection 的方式去管理网卡。

配置文件:

/etc/NetworkManager/├── NetworkManager.conf       <-- 主配置文件(控制守护进程自身的行为)├── conf.d/                   <-- 主配置子的补充目录(用于模块化修改主配置)│   └── 90-dns-none.conf├── dispatcher.d/             <-- 事件网络脚本目录(类似于 ifupdown的 if-up.d)│   ├── 01-ifupdown│   └── pre-up.d/├── system-connections/       <-- 核心:存放所有网络连接配置文件(最重要)│   ├── eth0.nmconnection│   └── MyWiFi.nmconnection└── dnsmasq.d/                <-- 供内置 dnsmasq 插件使用的配置目录(可选)

动态 IP:

# cat /etc/NetworkManager/system-connections/eth0.nmconnection[connection]id=eth0type=ethernetinterface-name=eth0[ipv4]method=auto

静态 IP:

# cat /etc/NetworkManager/system-connections/eth0.nmconnection[connection]id=static-eth0type=ethernetinterface-name=eth0[ipv4]method=manualaddresses=192.168.1.100/24gateway=192.168.1.1dns=8.8.8.8;1.1.1.1;

启停命令:

# 启动单个网卡nmcli device connect eth0nmcli connection up id "Wired connection 1"# 关闭单个网卡nmcli device disconnect eth0nmcli connection down id "Wired connection 1"# 列出网卡名称nmcli connection show# 亦可通过一行命令永久更改网卡 ipnmcli connection modify "Wired" ipv4.method manual ipv4.addresses 192.168.1.1/24 ipv4.gateway 192.168.1.254 ipv4.dns 8.8.8.8# 重启整个网络的所有网卡systemctl restart NetworkManager# TUI 可视化的管理网卡nmtui

5、systemd-networkd

工具介绍:以服务的方式管理网卡,默认有关 新增网卡、配置 ip、配置路由 都是通过创建相应的配置文件来实现的。

配置文件:

/├── lib/systemd/network/          <-- 1. 系统/发行版默认配置(优先级最低)│   ├── 80-container-host0.network│   └── 99-default.link│├── run/systemd/network/          <-- 2. 动态运行时配置(优先级中,临时有效)│   └── 50-cloud-init.network│└── etc/systemd/network/          <-- 3. 管理员自定义配置(优先级最高,最重要)    ├── 10-eth0.network           <-- 配置网卡 IP/路由(最常用)    ├── 20-bond0.netdev           <-- 创建虚拟网络设备(如网桥、Bond)    └── 99-default.link           <-- 配置网卡命名规则/MAC地址(可选)

动态 IP:

# cat /etc/systemd/network/10-eth0.network[Match]Name=eth0[Network]DHCP=ipv4

静态 IP:

# cat /etc/systemd/network/10-eth0.network[Match]Name=eth0[Network]Address=192.168.1.100/24Gateway=192.168.1.1DNS=8.8.8.8DNS=114.114.114.114

启停命令:

# 重启服务以使配置生效systemctl restart systemd-networkd# 查看网卡状态networkctl status eth0

6、netplan

工具介绍:该工具本身不直接管理网卡,它只是为后端服务(systemd-networkd 和 NetworkManager)提供了一个统一的配置语法而已,相当于是 后端服务的网卡配置生成器。

配置文件:

/├── lib/netplan/               <-- 1. 系统/发行版默认配置(优先级最低)│   └── 00-default-nm-renderer.yaml│├── run/netplan/               <-- 2. 运行时临时生成的配置(优先级中)│   └── 10-cloud-init-config.yaml│└── etc/netplan/               <-- 3. 管理员自定义配置目录(优先级最高,最重要)    ├── 01-network-manager-all.yaml    └── 50-cloud-init.yaml

动态 IP:

# cat /etc/netplan/01-network-manager-all.yamlnetwork:  version: 2  renderer: networkd  ethernets:    eth0:      dhcp4: true

注意:renderer 目前可选的参数只有 networkd 和 NetworkManager,它们分别对应 systemd-networkd 服务和 NetworkManager 服务。

静态 IP:

# cat /etc/netplan/01-network-manager-all.yamlnetwork:  version: 2  renderer: networkd  ethernets:    eth0:      dhcp4: false      addresses:        - 192.168.1.100/24      routes:        - to: default          via: 192.168.1.1      nameservers:        addresses:          - 8.8.8.8          - 1.1.1.1

启停命令:

# 应用配置文件中的修改netplan apply

7、杂项

(1)这 6 类网络管理器的分层结构、演进过程。

##### (1)分层结构 #####┌────────────────────────────┐│ 6. Netplan(配置抽象层)    │├────────────────────────────┤│ 4. NetworkManager          ││ 5. systemd-networkd        │  ← 网络管理器(daemon)├────────────────────────────┤│ 2. ifcfg                   ││ 3. ifupdown                │  ← 传统脚本/配置驱动├────────────────────────────┤│ 1. ip / ifconfig           │  ← 底层工具(直接操作内核)└────────────────────────────┘##### (2)演进过程 #####ifconfig / route            【直接执行时代】        ↓ifupdown (Debian)           【脚本配置时代】ifcfg (RHEL)        ↓NetworkManager(桌面化)    【daemon 】systemd-networkd(服务器化)        ↓Netplan(统一配置入口)     【抽象层时代】

(2)配置文件用法参考:netplan、systemd-networkd、ifcfg

相关文章

精彩推荐