使用nmtui管理Linux网络
Debian
Debian目前有两套网络管理方案
-
第一套:通过网络配置脚本/etc/init.d/networking对网卡配置文件/etc/network/interfaces内的参数进行网络配置
-
第二套:NetworkManager 可以通过nmtui文本图形的形式对网络进行配置(推荐)
NetworkManager和/etc/network/interfaces的关系
-
当系统内无NetworkManager时,系统默认使用 interfaces 文件内的参数进行网络配置。
-
当系统内安装了NetworkManager之后,如果在 /etc/network/interfaces里设置了网卡信息,那么NetworkManager就不会接管该网卡,如果没有设置NetworkManager默认是会接管网卡的。
-
PS:要么通过网络配置脚本/etc/init.d/networking进网络配置,要么通过NetworkManager进行网络配置,两个不要同时使用,否则会造成网络管理混乱,出现多个ip地址等问题。
通过网络配置脚本/etc/init.d/networking进网络配置
-
如果系统内安装了NetworkManager服务,就停止并禁用开机自启
sudo systemctl stop NetworkManager.service sudo systemctl disable NetworkManager.service
-
配置/etc/network/interfaces配置文件
- 动态ip
auto eth0 iface eth0 inet dhcp
- 静态ip
auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 # 多个dns用空格隔开 dns-nameserver 192.168.1.1 223.6.6.6
- 动态ip
-
重启/etc/init.d/networking
sudo /etc/init.d/networking restart
或
sudo systemctl restart networking.service
-
PS:如果不生效则重启系统
通过NetworkManager配置
-
安装NetworkManager
sudo apt install network-manager -y
-
注释掉/etc/network/interfaces 里的所有内容,仅仅保留本地回环网络(#表示注释)
auto lo iface lo inet loopback
-
停止/etc/init.d/networking 并禁用开机自启,避免干扰NetworkManager
- 停止
sudo /etc/init.d/networking stop
或
sudo systemctl stop networking.service
- 禁用开机自启
sudo systemctl disable networking.service
-
/etc/NetworkManager/NetworkManager.conf 里修改managed=true
[main] plugins=ifupdown,keyfile [ifupdown] managed=true #改为true
-
重启NetworkManager服务并设置为开机自启
sudo systemctl restart NetworkManager.service sudo systemctl enable NetworkManager.service
-
通过nmcli和nmtui进行网络管理(nmtui是可视化的文本界面,操作非常简单,此处不再进行演示)
-
PS:管理网络记得使用root权限,如果不生效则重启系统
树莓派有一点区别,还需关闭dhcpcd.service
- 关闭并禁用dhcpcd.service
sudo systemctl stop dhcpcd.service sudo systemctl disable dhcpcd.service
Ubuntu
Netplan
-
Netplan - 抽象网络配置生成器 ,是一个用于配置 Linux 网络的简单工具。
通过 Netplan ,你只需用一个 YAML 文件描述每个网络接口需要配置成什么样即可。
根据这个配置描述, Netplan 便可帮你生成所有需要的配置,不管你选用的底层管理工具是什么。 -
工作原理 - Netplan 从 /etc/netplan/*.yaml 读取配置,配置可以是管理员或者系统安装人员配置;
也可以是云镜像或者其他操作系统部署设施自动生成。 在系统启动阶段早期,
Netplan 在 /run 目录生成好配置文件并将设备控制权交给相关后台程序。 -
Netplan 目前支持以下两种网络管理工具:
-
NetworkManager
-
Systemd-networkd
-
-
一言以蔽之,从前你需要根据不同的管理工具编写网络配置,现在 Netplan 将管理工具差异性给屏蔽了。
你只需按照Netplan 规范编写 YAML 配置,不管底层管理工具是啥,一份配置走天下!
Netplan 使用指引
-
使用Systemd-networkd的配置如下:
- 静态ip
network: ethernets: ensXXX: addresses: - 10.10.10.252/24 gateway4: 10.10.10.1 nameservers: addresses: - 172.16.1.1 search: [] version: 2
- 动态ip
network: ethernets: ensXXX: dhcp4: true version: 2
-
ensXXX为网卡名称
-
使用NetworkManager配置如下:
network:
version: 2
renderer: NetworkManager
Netplan命令
-
netplan generate :以 /etc/netplan 配置为管理工具生成配置
-
netplan apply :应用配置(以便生效),必要时重启管理工具
-
因此,调整 /etc/netplan 配置后,需要执行以下命令方能生效:
sudo netplan apply
当使用了NetworkManager配置并apply后,重启NetworkManager服务后即可使用nmcli和nmtui进行网络管理。
- 安装NetworkManager
sudo apt install network-manager -y
- 设置NetworkManager开机自启
sudo systemctl enable NetworkManager
- 重启NetworkManager服务
sudo systemctl restart NetworkManager
CentOS
/etc/sysconfig/network-scripts/ifcfg-ensXXX (ensXXX为网卡名称)
-
修改配置文件内容如下
BOOTPROTO=dhcp # dhcp获取ip ONBOOT=yes # 开机自动启动网卡
BOOTPROTO=static # 静态ip ONBOOT=yes # 开机自动启动网卡 IPADDR=192.168.1.111 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=192.168.1.1 DNS2=223.6.6.6
nmtui
-
安装NetworkManager-tui
sudo yum install NetworkManager-tui
-
配置NetworkManager开机自启
sudo systemctl enable NetworkManager
-
使用nmcli和nmtui管理网络(nmtui也是去修改/etc/sysconfig/network-scripts/ifcfg-ensXXX的配置文件)