ILD

NetworkManager
作者:Yuan Jianpeng 邮箱:yuanjp89@163.com
发布时间:2025-11-30 站点:Inside Linux Development

在很多Linux发行版上,NetworkManager都是事实上的网络管理工具。


man 8 NetworkManager

可以查看帮助文档。


NetworkManager是一个网络管理守护程序,可以使用systemctl查看其状态:

$ systemctl status NetworkManager
● NetworkManager.service - Network Manager
     Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; preset: enabled)
    Drop-In: /usr/lib/systemd/system/service.d
             └─10-timeout-abort.conf, 50-keep-warm.conf
     Active: active (running) since Sat 2025-11-29 10:02:41 CST; 23h ago
 Invocation: 2c61e66aff0b43af8ef82d1d6b0ae5d3
       Docs: man:NetworkManager(8)
   Main PID: 1046 (NetworkManager)
      Tasks: 4 (limit: 18753)
     Memory: 9.1M (peak: 10.8M)
        CPU: 3.361s
     CGroup: /system.slice/NetworkManager.service
             └─1046 /usr/sbin/NetworkManager --no-daemon

Nov 30 09:25:45 fedora NetworkManager[1046]: <info>  [1764465945.4795] manager: NetworkManager state is now DISCONNECTING
Nov 30 09:25:45 fedora NetworkManager[1046]: <info>  [1764465945.4802] audit: op="device-disconnect" interface="enp4s0" ifindex=2 pid=14450 uid=1000 result="success"
Nov 30 09:25:45 fedora NetworkManager[1046]: <info>  [1764465945.5093] device (enp4s0): state change: deactivating -> disconnected (reason 'user-requested', managed-type: 'full')
Nov 30 09:25:45 fedora NetworkManager[1046]: <info>  [1764465945.5101] dhcp4 (enp4s0): canceled DHCP transaction
Nov 30 09:25:45 fedora NetworkManager[1046]: <info>  [1764465945.5101] dhcp4 (enp4s0): activation: beginning transaction (timeout in 45 seconds)
Nov 30 09:25:45 fedora NetworkManager[1046]: <info>  [1764465945.5101] dhcp4 (enp4s0): state changed no lease
Nov 30 09:25:45 fedora NetworkManager[1046]: <info>  [1764465945.5102] dhcp6 (enp4s0): canceled DHCP transaction
Nov 30 09:25:45 fedora NetworkManager[1046]: <info>  [1764465945.5102] dhcp6 (enp4s0): activation: beginning transaction (timeout in 45 seconds)
Nov 30 09:25:45 fedora NetworkManager[1046]: <info>  [1764465945.5102] dhcp6 (enp4s0): state changed no lease
Nov 30 09:25:45 fedora NetworkManager[1046]: <info>  [1764465945.5425] manager: NetworkManager state is now DISCONNECTED


查看进程状态:

$ ps aux | grep NetworkManager
root        1046  0.0  0.1 554468 20500 ?        Ssl  Nov29   0:02 /usr/sbin/NetworkManager --no-daemon
yuanjp     14724  0.0  0.0 230348  2344 pts/0    S+   09:35   0:00 grep --color=auto NetworkManager


配置文件在/etc/NetworkManager/目录下:

$ ls /etc/NetworkManager/
conf.d  dispatcher.d  dnsmasq.d  dnsmasq-shared.d  NetworkManager.conf  system-connections


比如其中一条连接的配置如下:

$ sudo cat /etc/NetworkManager/system-connections/Wired\ connection\ 3.nmconnection 
[connection]
id=Wired connection 3
uuid=cdaceb42-0788-3df8-b189-b0fd661e3269
type=ethernet
autoconnect-priority=-999
interface-name=enp4s0
timestamp=1716469199

[ethernet]

[ipv4]
dns=8.8.8.8;
ignore-auto-dns=true
method=auto

[ipv6]
addr-gen-mode=default
method=auto

[proxy]

nmcli

NetworkManager提供了一个命令行工具,来管理、查看网络。


man 1 nmcli

可以查看帮助文档。


nmcli [OPTIONS...] {help | general | networking | radio | connection | device | agent | monitor} [COMMAND] [ARGUMENTS...]

$ nmcli
enp4s0: connected to Wired connection 3
        "Realtek RTL8125 2.5GbE"
        ethernet (r8169), FC:34:97:B8:B2:42, hw, mtu 1500
        ip4 default, ip6 default
        inet4 192.168.1.9/24
        route4 192.168.1.0/24 metric 100
        route4 default via 192.168.1.1 metric 100
        inet6 2409:8a55:33a2:4120:7ddc:d160:ddc8:e739/64
        inet6 fe80::7613:548a:3cc4:2bbc/64
        route6 fe80::/64 metric 1024
        route6 2409:8a55:33a2:4120::/64 metric 100
        route6 2409:8a55:33a2:4120::/64 via fe80::3e10:60ff:fecd:e730 metric 105
        route6 default via fe80::3e10:60ff:fecd:e730 metric 100

lo: connected (externally) to lo
        "lo"
        loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536
        inet4 127.0.0.1/8
        inet6 ::1/128

enp1s0f0: unavailable
        "Intel 82576"
        ethernet (igb), E8:61:1F:10:57:F1, hw, sriov, mtu 1500

enp1s0f1: unavailable
        "Intel 82576"
        ethernet (igb), E8:61:1F:10:57:F0, hw, sriov, mtu 1500

wlo1: unavailable
        "Intel Tiger Lake PCH CNVi"
        wifi (iwlwifi), 5E:90:A5:5D:86:57, sw disabled, hw, mtu 1500

DNS configuration:
        servers: 8.8.8.8
        interface: enp4s0

        servers: 2409:8057:2000:6::8 2409:8057:2000:2::8
        interface: enp4s0

Use "nmcli device show" to get complete information about known devices and
"nmcli connection show" to get an overview on active connection profiles.

Consult nmcli(1) and nmcli-examples(7) manual pages for complete usage details.


可以使用下面的命令,关闭一个device

$ nmcli device down enp4s0
Device 'enp4s0' successfully disconnected.

会停止拨号,并且清除所有的ip和路由。

Copyright © linuxdev.cc 2017-2024. Some Rights Reserved.