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

在Ubuntu 19.04中,只需要这三个中的一个就足够了吗?是否可以同时拥有这三个,并且如何配置它们以避免冲突? systemd-networkd是由networking.service启动的吗?

@Fabby, 19.04。但这是一个一般性问题(所以暗示最新版本)。这个问题更适合在U&L提问,但我猜AU社区更大。 - midenok
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来启动接口。

Netplan的配置文件在哪里?您列出了很多配置选项,但没有说明它们应该放在哪里。 - Seth