分享免费的编程资源和教程

网站首页 > 技术教程 正文

Linux上用netplan配置网络

goqiw 2024-11-21 15:14:46 技术教程 67 ℃ 0 评论

netplan是一个Linux上的网络配置工具,用于配置Linux系统的网络连接。它是Ubuntu 17.10及更高版本中的默认网络配置工具,也可以在其他Linux发行版上使用。

netplan使用简单的YAML文件格式来描述网络接口的配置,可以用来配置多个网络接口, 未覆盖网络配置的设备不会受到任何影响。支持多种网络配置选项,包括静态IP地址、DHCP、IPv6、网桥、VLAN、MAC地址随机化等。netplan还支持多个网络渲染器,包括systemd-networkd和NetworkManager,以支持不同的网络管理方案,默认情况下,由systemd-networkd处理配置过的设备,除非明确标记(通过renderer字段)为由特定的渲染器(比如 NetworkManager)管理。

在Linux上使用netplan配置网络的步骤:

  1. 打开终端并切换到root用户。
  2. 使用以下命令编辑netplan配置文件:
vim /etc/netplan/01-netcfg.yaml
  • 如果系统版本较旧,则可能需要使用/etc/netplan/01-network-manager-all.yaml作为配置文件名。
  • 在配置文件中添加要配置的网络接口及其相关信息。例如,要为以太网接口配置静态IP,可以使用以下配置:
  • network:
      version: 2
      renderer: networkd
      ethernets:
        eth0:
          dhcp4: no
          addresses: [192.168.1.100/24]
          gateway4: 192.168.1.1
          nameservers:
            addresses: [8.8.8.8, 8.8.4.4]
    
  • 这个配置文件将IP地址设置为192.168.1.100、子网掩码设置为255.255.255.0(由地址/24表示)、网关设置为192.168.1.1,同时使用谷歌的DNS服务器地址8.8.8.8和8.8.4.4。
  • network::这是Netplan的顶级配置块。
  • version: 2:这指定了Netplan配置文件的版本。
  • renderer: networkd:这指定我们要使用networkd渲染器来配置网络。
  • ethernets::这指定了描述以太网连接的块。
  • eth0::这指定我们要配置的以太网连接的名称。
  • dhcp4: no:这指定我们要禁用DHCP并使用静态IP地址。
  • addresses: [192.168.1.100/24]:这指定了接口的静态IP地址和子网掩码。
  • gateway4: 192.168.1.1:这指定了默认网关的IP地址。
  • nameservers::这指定了描述DNS服务器的块。
  • addresses: [8.8.8.8, 8.8.4.4]:这指定了DNS服务器的IP地址。
  • 保存配置文件并退出文本编辑器。使用以下命令重新加载Netplan配置:

    netplan apply

    当执行netplan apply命令时,netplan会应用在YAML配置文件中所做的更改,通过生成适当的配置文件并应用这些更改来实现网络配置。

    大概的步骤如下:

    1. netplan读取YAML配置文件,这个文件指定了系统所需的网络配置。
    2. netplan会根据你在YAML配置文件中指定的网络渲染器生成适当的配置文件。例如,如果指定了networkd渲染器,则netplan会生成systemd网络配置文件。
    3. Netplan然后通过运行适当的命令来重新加载指定渲染器的网络配置来应用更改。例如,如果指定了networkd渲染器,则netplan会运行类似systemctl restart systemd-networkd的命令来应用更改。

    默认情况下,netplan生成的networkd配置文件位置是/run/systemd/networkd, 如图

    如果YAML配置文件有任何错误,netplan apply会失败并报告错误。

    其它配置示例

    1. 多个接口,在ethernets下
    network:
      version: 2
      renderer: networkd
      ethernets:
        eth0:
          dhcp4: no
          addresses: [192.168.1.100/24]
          gateway4: 192.168.1.1
          nameservers:
            addresses: [8.8.8.8, 8.8.4.4]
        eth1:
          dhcp4: no
          addresses: [10.0.0.100/24]
          gateway4: 10.0.0.1
          nameservers:
            addresses: [8.8.8.8, 8.8.4.4]
    1. 多个渲染器,在接口下指定renderer
    network:
      version: 2
      ethernets:
        eth0:
          renderer: networkd
          dhcp4: yes
        eth1:
          renderer: NetworkManager
          dhcp4: yes

    Tags:

    本文暂时没有评论,来添加一个吧(●'◡'●)

    欢迎 发表评论:

    最近发表
    标签列表