Loading... # netplan是什么? [Netplan][1] is a utility for easily configuring networking on a linux system. You simply create a YAML description of the required network interfaces and what each should be configured to do. From this description Netplan will generate all the necessary configuration for your chosen renderer tool. 在 Ubuntu 中,Netplan 是用于配置网络接口的工具。它使用 YAML 格式的配置文件来定义网络设置。以下是一些在 Ubuntu 上使用 Netplan 配置网络的示例方案: # netplan的工作原理是什么? ![2023-10-31T07:32:36.png][2] Netplan reads network configuration from /etc/netplan/*.yaml which are written by administrators, installers, cloud image instantiations, or other OS deployments. During early boot, Netplan generates backend specific configuration files in /run to hand off control of devices to a particular networking daemon. Netplan currently works with these supported renderers # netplan与networkmanager之间的关系是什么? Netplan 和 NetworkManager 都是用于配置网络的工具,但它们在配置的方式和工作原理上有一些区别。 Netplan 是一个用于**配置网络**的命令行工具,它使用 YAML 格式的配置文件来描述网络配置。您可以创建一个 Netplan 配置文件(通常位于 `/etc/netplan/` 目录下),然后使用 `netplan apply` 命令将配置应用到系统中。Netplan 会将配置转换为底层网络管理器(如 systemd-networkd 或 NetworkManager)所需的配置文件。Netplan 的目标是提供一个统一的网络配置接口,无论底层使用的是哪个网络管理器。 NetworkManager 是一个**网络管理服务**,提供了图形化和命令行界面,用于配置网络连接。它可以管理以太网、Wi-Fi、VPN、移动宽带等各种类型的网络连接。NetworkManager 会监视系统中的网络设备和连接,并根据配置文件或用户的操作来进行网络配置。它可以与不同的网络管理器(如 systemd-networkd、dhclient 等)进行交互,以实现网络连接的配置和管理。 在 Ubuntu 中,默认情况下,Netplan 与 NetworkManager 是一起使用的。Netplan 会生成 NetworkManager 的配置文件,然后 NetworkManager 会根据这些配置文件来管理网络连接。您可以使用 Netplan 来配置一些基本的网络设置,如 IP 地址、网关和 DNS 服务器。对于更复杂的网络配置(如 Wi-Fi、VPN 等),您可以使用 NetworkManager 的工具来进行配置。 总结起来,Netplan 提供了一个统一的网络配置接口,用于生成底层网络管理器所需的配置文件,而 NetworkManager 则是一个网络管理服务,负责实际的网络连接管理和配置。它们可以一起使用,以便在 Ubuntu 中进行灵活且全面的网络配置。 # 常用配置举例 ## 1. 配置静态 IP 地址 ```yaml network: version: 2 renderer: networkd ethernets: eth0: dhcp4: no addresses: [192.168.1.100/24] routes: - to: defaulat via: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4] ``` 上述配置将 `eth0` 网络接口配置为静态 IP 地址为 `192.168.1.100/24`,网关为 `192.168.1.1`,DNS 服务器为 Google 的 DNS 服务器 `8.8.8.8` 和 `8.8.4.4`。 ## 2. 配置 DHCP ```yaml network: version: 2 renderer: networkd ethernets: eth0: dhcp4: true ``` 上述配置将 `eth0` 网络接口配置为使用 DHCP 获取 IP 地址。 ## 3. 配置桥接网络 ```yaml network: version: 2 renderer: networkd ethernets: eth0: dhcp4: no bridges: br0: interfaces: [eth0] addresses: [192.168.1.100/24] routes: - to: defaulat via: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4] ``` 上述配置将 `eth0` 网络接口桥接到 `br0`,并为 `br0` 分配静态 IP 地址、网关和 DNS 服务器。 ## 4. 配置子接口 ``` network: version: 2 renderer: networkd ethernets: eth0: dhcp4: true vlans: vlan10: id: 10 link: eth0 addresses: [192.168.1.10/24] routes: - to: defaulat via: 192.168.1.1 vlan20: id: 20 link: eth0 addresses: [192.168.2.10/24] routes: - to: defaulat via: 192.168.2.1 ``` 上述配置示例中,除了 vlan10 子接口外,还添加了一个名为 vlan20 的子接口。vlan10 的 VLAN ID 是 10,而 vlan20 的 VLAN ID 是 20。每个子接口都有自己的 IP 地址和网关。 ## 5. 配置第二地址 ``` network: version: 2 renderer: networkd ethernets: eth0: dhcp4: no addresses: [192.168.1.100/24, 10.0.0.100/24] routes: - to: defaulat via: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4] ``` 上述配置示例中,eth0 网络接口配置了两个 IP 地址:192.168.1.100/24 和 10.0.0.100/24。这样,eth0 接口将拥有两个 IP 地址。 ## 6. 配置环回地址 ``` network: version: 2 renderer: networkd ethernets: eth0: dhcp4: true lo: addresses: [127.0.0.1/8] ``` ## 7. 配置明细路由 ``` network: version: 2 renderer: networkd ethernets: eth0: dhcp4: true routes: - to: 192.168.2.0/24 via: 192.168.1.1 - to: 10.0.0.0/24 via: 192.168.1.1 ``` 上述配置示例中,eth0 接口配置了两个明细路由。第一个路由是将流量发送到目标网络 192.168.2.0/24,通过网关 192.168.1.1。第二个路由是将流量发送到目标网络 10.0.0.0/24,同样通过网关 192.168.1.1。 ## 8.配置ipv6 使用 DHCPv6:如果您的网络支持 IPv6,并且您想通过 DHCPv6 获取 IPv6 地址,可以使用 dhcp6: true 配置。例如: ```yaml network: version: 2 renderer: networkd ethernets: eth0: dhcp6: true ``` 上述配置示例中,eth0 接口启用了 DHCPv6。 ## 9.配置mac地址 配置网络设备的 MAC 地址:如果您需要手动指定网络设备的 MAC 地址,可以使用 match 字段和 macaddress 子字段。例如: ```yaml network: version: 2 renderer: networkd ethernets: eth0: match: macaddress: aa:bb:cc:dd:ee:ff dhcp4: true ``` 上述配置示例中,eth0 接口配置了 MAC 地址为 aa:bb:cc:dd:ee:ff。 ## 10. 连接openvpn服务器 是的,Netplan 支持配置与 OpenVPN 的连接。您可以使用 Netplan 配置文件来设置 OpenVPN 客户端连接。下面是一个示例: ```yaml network: version: 2 renderer: networkd ethernets: eth0: dhcp4: true vpn: - type: openvpn config: /path/to/openvpn/client.conf ``` 在上述配置示例中,eth0 接口配置为使用 DHCP 获取 IPv4 地址。然后,通过 vpn 字段指定了一个 OpenVPN 连接,其中 type 设置为 openvpn,并指定了 OpenVPN 客户端配置文件的路径。 这些只是 Netplan 的一些示例配置方案。您可以根据您的网络需求和环境进行相应的配置。完成配置后,使用 `sudo netplan apply` 命令来应用配置更改。 请注意,具体的配置方案可能会因您的网络环境和要求而有所不同。建议在进行任何网络配置更改之前备份您的原始配置文件,并确保您对网络配置有一定的了解。 希望这些示例能帮助到您!如果您有任何进一步的问题,请随时提问。 [1]: https://netplan.io/ [2]: https://www.sddts.cn/usr/uploads/2023/10/3480015728.png 最后修改:2024 年 05 月 11 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏