使用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
      
  • 重启/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的配置文件)

文章作者: zjw57
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 zjw57's blog
Linux Linux Netplan NetworkManager Network Nmtui
喜欢就支持一下吧