/etc/network/interfaces、systemd-networkd 和 NetworkManager:它们如何共存?

/etc/network/interfaces、systemd-networkd 和 NetworkManager:它们如何共存?

在 Ubuntu 19.04 中拥有这三个中的一个就足够了吗? 是否可以同时拥有这三个,以及如何配置它们以使它们不冲突?

是否systemd-networkd由 networking.service 启动?

答案1

您可能知道/etc/network/interfaces已被 取代netplan。并且与和netplan都可以很好地配合使用。NetworkManagersystemd-networkd

这样你就可以让它们一起工作了!

如果您运行 Ubuntu 作为桌面,那么您应该使用NetworkManager或配置netplan它以便用作NetworkManager其默认渲染器:

network:
  version: 2
  renderer: NetworkManager

否则,您可以轻松地自行设置接口netplan,例如具有interfaces类似的配置并network-manager协同工作:

network:
  version: 2
  renderer: NetworkManager
  wifis:
    wlp4s0:
      dhcp4: yes
      access-points:     
        my-access-point:
          password: passw00rd
network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 192.168.1.10/24
      dhcp4: false
      dhcp6: false
      gateway4: "192.168.1.1"
      nameservers:
        addresses:
          - "8.8.4.4"
          - "8.8.8.8"

配置

要配置 netplan,请将配置文件保存在 /etc/netplan/ 下,扩展名为 .yaml(例如 /etc/netplan/config.yaml),然后运行 ​​sudo netplan apply。此命令将解析配置并将其应用于系统。写入 /etc/netplan/ 下磁盘的配置将在重新启动后保留。

Netplan 配置示例


用 netplan 替换ifupdown仍然是可能的,但我不建议这样做。

  1. 安装ifupdown
  2. 消除netplan
  3. 配置interfaces
  4. 配置/etc/NetworkManager/NetworkManager.conf以便它能够管理您的接口。
  5. 重启网络服务

您甚至可以dhclient直接运行来启动接口。

相关内容