一、Linux 网络管理概述
1.1 Linux 网络管理概述
早期的Linux发行版本里几乎所有的网络服务都是network服务,配置网络的方法,几乎只有创建网卡配置文件,添加网络参数,修改网络参数,然后重启network服务,让network服务加载网卡配置文件到内存,然后让内核读取内存里面的网卡配置文件来获取网络配置。
NetworkManager 是一个为系统提供检测和配置功能以便自动连接到网络的程序。NetworkManager 的功能对无线和有线网络都很有用。对于无线网络,NetworkManager 偏好已知的无线网络,并能切换到最可靠的网络。能感知 NetworkManager 的应用程序可以切换在线和离线模式。比起无线连接,NetworkManager 更偏好有线连接,且支持调制解调器连接和一些类型的 VPN。NetworkManager 最初由 Red Hat 开发,现在由 GNOME 管理。
NetworkManager 的设计目的是为了统一网络配置,统一网络配置的意思就是以后所有网络相关的配置都使用NetworkManager来实现
NetworkManager 服务提供了3种工具类配置网卡参数,无论哪种工具,都不需要手工的修改网卡配置文件。
要使用 NetworkManager 工具需先确认 NetworkManager 服务是开启的,如果服务不开启,就无法使用NetworkManager。
|
|
1.2 NetworkManager 网络管理工具
NetworkManager 提供三种方式管理主机网络:图形工具(nm-connection-editor )、伪图形工(nmtui) 和 命令行工具(nmcli )。
- 图形工具(nm-connection-editor ): 需用登录图形桌面环境才能使用;
- 伪图形工(nmtui): 通过终端字符,模拟出图形界面,其实看到的图形不是真正的图形,而是字符组出来的。
- 命令行工具(nmcli): nmcli ( network manager cli command line interface) 是通过终端命令管理主机网络;
二、nmcli 命令行工具详解
2.1 nmcli networking
显示 NetworkManager 是否接管网络设置:
|
|
networking 可以简写为 n、ne、net、netw…… 所以以上命令可以简写为
查看网络连接状态:
|
|
网络连接状态共有五种:full、limited(连网,但无法上网)、portal(连网,但需要登陆认证后才能上网)、none(没连网)和 unknown。
开启网络连接:
|
|
关闭网络连接:
|
|
2.2 nmcli general
显示系统网络状态:
|
|
general 可以简写为 g、ge、gen、gene……
status 是 general 的默认项,可以省略不写。所以,以上命令可简写为:
|
|
- STATE 显示网络是否连接;
- CONNECTIVITY 与前面介绍的 nmcli n c 相同;
- WIFI-HW 表示 WIFI 硬件开关、WIFI 表示 WIFI 软件开关;
- WWAN-HW 表示 WWAN 硬件开关、WWAN 表示 WWAN 软件开关。
Tips: HW 代表 HardWare,WWAN 代表 Wireless Wide Area Network。
显示主机名:
|
|
更改主机名:
|
|
2.3 nmcli device 管理
|
|
device 可以简写为 d、de、dev……
查看网卡和网卡配置文件的概述信息
|
|
status 是 device 的默认项,可以省略不写, 也可简写为 s。所以,以上命令可简写为:nmcli d
或 nmcli d s
- DEVICE:表示网卡名称(内核label)
- TYPE: 网卡的类型(内核label)
- STATE: 当前网卡的状态(指的是NetworkManager服务是否接管了这块网卡)
- 如果 STATE 列是unmanaged,就表示该块网卡并没有被NetworkManager服务接管。如果网卡没有被NetworkManager服务接管,就意味着无法使用NetworkManager管理该网卡;
- 如果 STATE 列是disconnected,意味着该块网卡,并没有使用任何配置文件
- 如果 STATE 列是connected,意味着该块网卡,正在使用某个配置文件
- 如果 STATE 列是connecting状态,就意味着该网卡正在获取ip地址
- CONNECTION:表示当前网卡使用的配置文件是什么,如果有名字,就表示该网卡的配置文件就是那个名字。如果是"–“就表示该网卡当前没有配置文件。
删除网卡
|
|
delete 只能删除软网卡,不能删除硬件网卡
连接 / 断开网卡
|
|
指定一个网卡,就能建立 / 切断该网卡和当前配置文件的联系(断开/关闭网络) connect 可简写为 c 。 disconnect 可简写为 d 。
查看网卡信息:
|
|
show 不可简写为 s,否则与 status 冲突,但可以简写为 sh
2.4 nmcli connection
显示所有网络连接的信息:
|
|
connection 可以简写为 c、co、con、conn……
show 是 connection 的默认项,可以省略不写。
nmcli connection show
有一个 –active 参数,可以只显示当前启动的连接:
|
|
显示某一特定连接的详细信息(以 eth1 为例):
|
|
启动指定连接:
|
|
如果 eth1 本来就处于连接状态,那此命令会重启 eth1。
关闭指定连接:
|
|
关闭连接后,执行 nmcli c 命令, DEVICE 项将显示为 – 。
修改连接:
|
|
常用修改示例:
|
|
注意,必须先修改 ipv4.address,然后才能修改 ipv4.method!
用空引号"“代替选项的值,可将选项设回默认值(以 ipv4.method 为例):
选项有很多,详细信息可以通过以下命令查看:
|
|
新增连接:
|
|
type 为必选项,我们通常用到的是 802-3-ethernet(别名 ethernet)。
选项与前面介绍的“修改连接”中的选项一样,其中重要的几个选项:
connection.id(别名 con-name):连接名;
connection.interface-name(别名 ifname):设备名;
connection.autoconnect(别名 autoconnect):是否开机自启,其值只能是 yes 或 no,默认 yes。
下面给出一个示例:
|
|
删除指定连接:
|
|
重载所有连接的配置文件:
|
|
重载某一指定连接的配置文件:
|
|