一、简介
1.NetworkManager 状态
首先确认当前系统使用 NetworkManager
[root@localhost ~]# systemctl status NetworkManager
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled)
Active: active (running) since 三 2024-05-08 01:58:39 CST; 5 days ago
Docs: man:NetworkManager(8)
Main PID: 819 (NetworkManager)
CGroup: /system.slice/NetworkManager.service
└─819 /usr/sbin/NetworkManager --no-daemon
...
2.查看当前网卡
[root@localhost ~]# nmcli device
# 设备名称 类型 连接状态 连接名称
DEVICE TYPE STATE CONNECTION
ens192 ethernet 已连接 ens192
lo loopback 未托管 --
[root@localhost ~]# nmcli connection
# 连接名 唯一识别码 类型 设备名称
NAME UUID TYPE DEVICE
ens192 dd77bab7-d4f3-4cd2-ba8f-d345da061bf6 ethernet ens192
3.查看连接详细配置
[root@localhost ~]# nmcli connection show ens192
# connection 部分主要是名称,开机自动连接相关配置
connection.id: ens192
connection.uuid: dd77bab7-d4f3-4cd2-ba8f-d345da061bf6
connection.stable-id: --
connection.type: 802-3-ethernet
connection.interface-name: ens192
connection.autoconnect: 是
connection.autoconnect-priority: 0
connection.autoconnect-retries: -1 (default)
...
# 802-3-ethernet,主要是硬件相关参数
802-3-ethernet.port: --
802-3-ethernet.speed: 0
802-3-ethernet.duplex: --
802-3-ethernet.auto-negotiate: 否
802-3-ethernet.mac-address: --
802-3-ethernet.cloned-mac-address: --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-blacklist: --
802-3-ethernet.mtu: 自动
802-3-ethernet.s390-subchannels: --
802-3-ethernet.s390-nettype: --
802-3-ethernet.s390-options: --
802-3-ethernet.wake-on-lan: default
802-3-ethernet.wake-on-lan-password: --
# ipv4部分,主要是ipv4地址、网关、DNS等
ipv4.method: manual
ipv4.dns: 192.170.1.26,192.170.1.28
ipv4.dns-search: --
ipv4.dns-options: ""
ipv4.dns-priority: 0
ipv4.addresses: 192.170.1.66/24
ipv4.gateway: 192.170.1.1
ipv4.routes: --
...
# ipv6部分,主要是ipv6相关参数
ipv6.method: ignore
ipv6.dns: --
ipv6.dns-search: --
ipv6.dns-options: ""
ipv6.dns-priority: 0
ipv6.addresses: --
ipv6.gateway: --
ipv6.routes: --
ipv6.route-metric: -1
ipv6.route-table: 0 (unspec)
ipv6.routing-rules: --
ipv6.ignore-auto-routes: 否
ipv6.ignore-auto-dns: 否
ipv6.never-default: 否
ipv6.may-fail: 是
ipv6.ip6-privacy: -1(unknown)
ipv6.addr-gen-mode: stable-privacy
...
# GENERAL部分是当前运行的参数
GENERAL.NAME: ens192
GENERAL.UUID: dd77bab7-d4f3-4cd2-ba8f-d345da061bf6
GENERAL.DEVICES: ens192
GENERAL.STATE: 已激活
GENERAL.DEFAULT: 是
GENERAL.DEFAULT6: 否
GENERAL.SPEC-OBJECT: --
GENERAL.VPN: 否
GENERAL.DBUS-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/Settings/1
GENERAL.ZONE: --
GENERAL.MASTER-PATH: --
...
#
消息字母为配置参数,大写字母为当前实际生效的配置参数。 以下参数需要特别注意
bash connection.autoconnect [yes|no]:是否需要启动这个网络连接 ipv4.method [auto|manual]:获取地址方式[自动|手动] ipv4.addresses [IP/Netmask]:手动指定IP地址及掩码 ipv4.gateway [GWIP]:设置网关的 IP 地址 ipv4.dns [DNSIP]:设置 DNS 服务器 的 IP 地址
二、静态地址配置
NetworkManager对一个网卡设备可以配置不同的配置,根据实际需求选择启用哪一个。
1.删除配置
[root@localhost ~]# nmcli connection delete ens192
Connection 'ens192' (dd77bab7-d4f3-4cd2-ba8f-d345da061bf6) successfully deleted.
2.新建配置
[root@localhost ~]# nmcli connection add con-name ens192-static type ethernet ifname ens192 \
> ipv4.method manual ipv4.addresses 192.170.1.67/24 \
> ipv4.gateway 192.170.1.1 ipv4.dns 218.2.135.1,8.8.8.8
Connection 'ens192-static' (dd77bab7-d4f3-4cd2-ba8f-d345da061bf6) successfully added.
3.启用指定配置
[root@localhost ~]# nmcli connection up ens192-static
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/10)
4. 查看连接
[root@localhost ~]# nmcli connection
NAME UUID TYPE DEVICE
ens192-static fcd5aa18-4357-454d-bdab-2d7fd0807a55 ethernet ens192
lo add9f515-6d76-42e1-8404-45422b8667f0 loopback lo
5.查看运行后的信息
[root@localhost ~]# nmcli connection show ens192-static
connection.id: enp1s0-manual
connection.uuid: dd77bab7-d4f3-4cd2-ba8f-d345da061bf6
....
connection.interface-name: enp1s0
connection.autoconnect: yes
....
ipv4.method: manual
ipv4.dns: 218.2.135.1,8.8.8.8
....
ipv4.addresses: 192.170.1.67/24
ipv4.gateway: 192.170.1.1
....
IP4.ADDRESS[1]: 192.170.1.67/24
IP4.GATEWAY: 192.170.1.1
IP4.ROUTE[1]: dst = 192.168.10.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 192.170.1.1, mt = 100
IP4.DNS[1]: 218.2.135.1
IP4.DNS[2]: 8.8.8.8
6.查看配置文件
[root@localhost ~]# cat /etc/NetworkManager/system-connections/ens192-static.nmconnection
三、自动获取地址
1.新建 ens192-auto 配置
[root@localhost ~]# nmcli connection add con-name ens192-auto type ethernet ifname ens192 \
> ipv4.method auto ipv4.addresses ''
[root@localhost ~]# nmcli connection
NAME UUID TYPE DEVICE
ens192-static fcd5aa18-4357-454d-bdab-2d7fd0807a55 ethernet ens192
lo add9f515-6d76-42e1-8404-45422b8667f0 loopback lo
ens192-auto 24f5eeb1-3b37-4c5c-9479-cb8610e62f70 ethernet --
# 你會發現,目前有作用的是 ens192-auto 這個項目!因為該項目的 DEVICE 有介面卡存在。
# 而剛剛建立的 ens192-auto 的 DEVICE 則為空!因為並沒有啟用啊!
2.启动自动获取配置
[root@localhost ~]# nmcli connection up ens192-auto
[root@localhost ~]# nmcli connection
NAME UUID TYPE DEVICE
ens192-auto 24f5eeb1-3b37-4c5c-9479-cb8610e62f70 ethernet ens192
lo add9f515-6d76-42e1-8404-45422b8667f0 loopback lo
ens192-manual fcd5aa18-4357-454d-bdab-2d7fd0807a55 ethernet --
3.查看配置信息
[root@localhost ~]# ip addr show ens192; route -n
四、设置默认配置
1.设置默认启用配置
这里以手动配置静态地址为默认配置
[root@localhost ~]# nmcli connection modify ens192-static connection.autoconnect yes
[root@localhost ~]# nmcli connection modify ens192-auto connection.autoconnect no
2.关闭所有配置
[root@localhost ~]# nmcli connection down ens192-auto
3.查看当前状态
[root@localhost ~]# nmcli connection
NAME UUID TYPE DEVICE
lo add9f515-6d76-42e1-8404-45422b8667f0 loopback lo
ens192-auto 24f5eeb1-3b37-4c5c-9479-cb8610e62f70 ethernet --
ens192-static fcd5aa18-4357-454d-bdab-2d7fd0807a55 ethernet --
# 网络配置都没有应用到任何网卡
4.重启NetworkManager服务
[root@localhost ~]# systemctl restart NetworkManager
[root@localhost ~]# nmcli connection
NAME UUID TYPE DEVICE
ens192-static fcd5aa18-4357-454d-bdab-2d7fd0807a55 ethernet ens192
lo add9f515-6d76-42e1-8404-45422b8667f0 loopback lo
ens192-auto 24f5eeb1-3b37-4c5c-9479-cb8610e62f70 ethernet --
# 服务重启后,发现默认启用的配置是 ens192-static
参考资料
[鸟哥网络配置] : https://linux.vbird.org/linux_server/rocky9/0160setnetwork.php
评论