关于Linux中网络连接配置(NetworkManager)的一些笔记
傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比死亡更可怕的事。——–王小波)
写在前面
- 嗯,准备
RHCA,学习整理这部分知识 NetworkManager其实是RHCAS的内容- 博文内容为常见的配置操作回顾:
NetworkManager简述- 命令行的方式配置网络连接
- 修改配置文件的方式配置网络连接
- 谁有权限修改网络连接配置
傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比死亡更可怕的事。——–王小波
红帽8(rhel8,Centos 8)使用的网络管理服务有两个:NetworkManager和network。rhel8默认使用NetworkManager服务管理网络。如果要使用network,需要单独启动服务处理,network的启动是通过之前的init文件来引导的。
常见的配置网络方法:
- 通过
nmcli connection add命令配置,会自动生成ifcfg文件。 - 手动配置
ifcfg-name文件,通过nmcli connection reload来加载生效。 - 手动配置
ifcfg-name文件,通过旧服务network.service来加载生效。 - 通过
nmtui以图形化的方式配置
不管那种方式,基本都是就围绕NetworkManager服务展开,除了使用旧的服务单元network.service
1 | ┌──[root@liruilongs.github.io]-[~] |
NetworkManager简述
基于NetworkManager的系统守护进程,主要负责管理网络接口(device)和连接配置(connection)。它监视和管理网络设置,并使用/etc/sysconfig/networkscripts/目录中的文件来存储它们。
在NetworkManager中,设备是网络接口。连接是可以为设备配置的设置的集合。任何设备在同一时间只有一个连接是活动的。可能存在多个连接,用于不同设备的使用,或者允许对同一设备的配置进行更改。
每个连接都有一个名称或ID来标识它。/etc/sysconfig/network-scripts/ifcfg-name文件存储连接的持久配置,其中name是连接的名称。当连接名中有空格时,文件名中的空格将被替换为下划线。如果需要,这个文件可以手工编辑。
nmcli程序从shell提示符创建和编辑连接文件。
查看组网信息,可以通过nmcli dev status命令用来查看所有网络设备的当前状态。
1 | ┌──[root@liruilongs.github.io]-[~] |
当然nmcli操作除dev和con之外其他一些对象,暂时不清楚是干什么的,以后有机会研究下。
1 | ┌──[root@liruilongs.github.io]-[~] |
nmcli con show命令用来显示所有连接的列表。添加--active选项来只列出活动的连接。
1 | ┌──[root@liruilongs.github.io]-[~] |
device
device即网卡设备。常用的命令如下
1 | ┌──[root@servera.lab.example.com]-[~] |
关于device,一般不怎么操作,通过show命令 nmcli device show eth0可以查看网卡详细信息
1 | ┌──[root@servera.lab.example.com]-[~] |
connection
connection 即为添加动态网络连接配置,常用的命令如下
1 | ┌──[root@servera.lab.example.com]-[~] |
查看show
通过nmcli connection show可以查看网络配置的详细信息
1 | ┌──[root@servera.lab.example.com]-[~] |
添加add
通过 nmcli connection add 添加一个网络连接,默认IP为动态获取
1 | ┌──[root@servera.lab.example.com]-[~] |
这里添加的网络配置名字为dynamic-eth1,使用的网卡为eth1,查看添加的网络连接配置
1 | ┌──[root@servera.lab.example.com]-[~] |
这里IP地址获取方式默认为动态获取
1 | ┌──[root@servera.lab.example.com]-[~] |
添加一个连接,网络类型配置为因特网(ethernet)
1 | ┌──[root@servera.lab.example.com]-[~] |
修改modify
nmcli con mod name命令用于修改连接设置。这些更改也保存在连接的/etc/sysconfig/network-scripts/ifcfg-name文件中。
1 | ┌──[root@servera.lab.example.com]-[~] |
修改ipv4的IP地址获取方式为手动,并指定IP地址、网关、DNS
1 | ┌──[root@servera.lab.example.com]-[~] |
查看系修改后的信息,切记修改完需要从新激活
1 | ┌──[root@servera.lab.example.com]-[~] |
激活up
nmcli con up name命令用来激活绑定了名称连接的网络接口。该命令使用连接名,而不是网络接口名,下面执行可以动态获取ip
1 | ┌──[root@servera.lab.example.com]-[~] |
断开disconnect
nmcli dev disconnect device命令用来断开设备的网络接口,使其断开。命令缩写为nmcli dev dis device
1 | ┌──[root@servera.lab.example.com]-[~] |
这里需要说明的是,nmcli con down name命令通常不是禁用网络接口的最佳方法,因为它会导致连接中断。然而,默认情况下,大多数有线系统连接配置为启用自动连接。这将在网络接口可用时立即激活连接。因为连接的网络接口仍然是可用的,nmcli con down name会将该接口关闭,但随后NetworkManager会立即将其打开,除非该连接与该接口完全断开。
删除delete
1 | ┌──[root@servera.lab.example.com]-[~] |
配置文件
网络连接配置中,静态连接属性保存在/etc/sysconfig/network-scripts/ifcfg-*配置文件中。
动态的连接数据,如设置IP自动获取,即从DHCP服务器获得的,是不持久存储的。
执行nmcli con show name命令查询连接的当前设置。小写设置是可以更改的静态属性。大写设置是连接实例临时使用的动态设置。
1 | ┌──[root@liruilongs.github.io]-[~] |
配置文件信息查看
1 | ┌──[root@servera.lab.example.com]-[~] |
配置文件修改后需要从新加载激活
1 | ┌──[root@servera.lab.example.com]-[/etc/sysconfig/network-scripts] |
谁可以修改网络设置
修改网络配置的权限:root和以及本地登录的普通用户可以修改,通过SSH远程的普通用户没有权限
- ROOT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20┌──[root@liruilongs.github.io]-[~]
└─$nmcli general permissions
PERMISSION VALUE
org.freedesktop.NetworkManager.enable-disable-network yes
org.freedesktop.NetworkManager.enable-disable-wifi yes
org.freedesktop.NetworkManager.enable-disable-wwan yes
org.freedesktop.NetworkManager.enable-disable-wimax yes
org.freedesktop.NetworkManager.sleep-wake yes
org.freedesktop.NetworkManager.network-control yes
org.freedesktop.NetworkManager.wifi.share.protected yes
org.freedesktop.NetworkManager.wifi.share.open yes
org.freedesktop.NetworkManager.settings.modify.system yes
org.freedesktop.NetworkManager.settings.modify.own yes
org.freedesktop.NetworkManager.settings.modify.hostname yes
org.freedesktop.NetworkManager.settings.modify.global-dns yes
org.freedesktop.NetworkManager.reload yes
org.freedesktop.NetworkManager.checkpoint-rollback yes
org.freedesktop.NetworkManager.enable-disable-statistics yes
org.freedesktop.NetworkManager.enable-disable-connectivity-check yes
org.freedesktop.NetworkManager.wifi.scan unknown - 本地登录的普通用户

- 远程登录的普通用户
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20[liruilong@liruilongs /]$nmcli general permissions
PERMISSION VALUE
org.freedesktop.NetworkManager.enable-disable-network no
org.freedesktop.NetworkManager.enable-disable-wifi no
org.freedesktop.NetworkManager.enable-disable-wwan no
org.freedesktop.NetworkManager.enable-disable-wimax no
org.freedesktop.NetworkManager.sleep-wake no
org.freedesktop.NetworkManager.network-control auth
org.freedesktop.NetworkManager.wifi.share.protected no
org.freedesktop.NetworkManager.wifi.share.open no
org.freedesktop.NetworkManager.settings.modify.system auth
org.freedesktop.NetworkManager.settings.modify.own auth
org.freedesktop.NetworkManager.settings.modify.hostname auth
org.freedesktop.NetworkManager.settings.modify.global-dns auth
org.freedesktop.NetworkManager.reload auth
org.freedesktop.NetworkManager.checkpoint-rollback auth
org.freedesktop.NetworkManager.enable-disable-statistics no
org.freedesktop.NetworkManager.enable-disable-connectivity-check no
org.freedesktop.NetworkManager.wifi.scan unknown
[liruilong@liruilongs /]$
关于Linux中网络连接配置(NetworkManager)的一些笔记
https://liruilongs.github.io/2022/04/04/rhca/RH385/关于Linux中NetworkManager的一些笔记/
1.Linux网络调优之内核网络栈发包收包认知
2.Linux 性能调优之 OOM Killer 的认知与观测
3.为什么进程的物理内存占用(RSS)不停增长? 利用 BPF 跟踪、统计 Linux 缺页异常
4.如何使用 BPF 监控 Linux 用户态小内存分配:Linux 内存调优之 BPF 分析用户态小内存分配
5.Linux 内存调优之 BPF 分析用户态 mmap 大内存分配
6.如何使用 BPF 分析 Linux 内存泄漏,Linux 性能调优之 BPF 分析内核态、用户态内存泄漏
7.认识 Linux 内存构成:Linux 内存调优之页表、TLB、缺页异常、大页认知
8.Linux 内存调优之如何限制进程、系统级别内存资源

