Ubuntu 网络配置
条评论[1] Netplan
1. Ubuntu 的网络配置策略
在 Ubuntu 18.0.4 及之后的系统版本中,使用 https://netplan.io 进行网络配置,系统启动时,会获取到 /etc/netplan/*.yaml
的配置信息决定使用哪个 renderer
作为系统的网络配置服务。
可选的 renderer
为:
- systemd-networkd
- NetworkManager
如流程图所示,系统启动时,/etc/netplan/*.yaml
中的配置文件会被 netplan
读取(即执行 netplan generate
命令),并根据配置文件中指定的 renderer
将 *.yaml
中的网络配置信息转译成 systemd-networkd
或者 NetworkManager
对应的配置文件。新装的 Ubuntu 18.04 及以上版本的系统,可发现默认的 netplan 配置信息 /etc/netplan/01-network-manager-all.yaml
,其内容为:
1 | # Let NetworkManager manage all devices on this system |
表示系统默认使用 NetworkManager
作为系统的网络配置服务。
注意:需要在
/{run, etc, lib}/netplan
中配置默认使用的renderer
,否则系统重启后,将没有任一服务托管网络
2. NetworkManager
若使用 NetworkManager
为默认的网络服务,则系统启动时,netplan 会将配置信息转译成其对应的配置文件存放在 /run/NetworkManager/system-connections
中,但由于上述的默认的 /etc/netplan/01-network-manager-all.yaml
中仅仅指定了默认使用的网络服务,因此并不会在 /run/NetworkManager/system-connections
中生成相关配置。
此时,NetworkManager会在其配置文件目录 /etc/NetworkManager/system-connections
中找到其配置文件。如果该目录下的配置文件为空,则当前主机将处于未配置网络的状态。
如果在netplan中指定NetworkManager作为网络托管服务,并配置了IP信息,如:
1 | network: |
则netplan会将该配置转译后添加至 /run/NetworkManager/system-connections
中,NetworkManager 会识别两个文件夹中的配置文件。可以使用 nmcli connection show
查看。
使用netplan创建的NetworkManager配置文件,如果在界面化中被修改,则原本在/run中的配置文件会被持久化添加到/etc中,但是由于网络配置还是由netplan控制,重启计算机或者运行 netplan apply
后会创建刚刚在/run中被修改的配置文件,并且 /run/NetworkManager/system-connections
的优先级大于 /etc/NetworkManager/system-connections
。
注:在
/etc/NetworkManager/system-connections
下的配置文件其权限只能是600
,否则该配置文件将无法被Network Manager加载。
3. systemd-networkd
4. 样例
Netplan is the Ubuntu network configuration tool in all recent Ubuntu versions. Netplan is based on a YAML-based configuration system that makes the configuration process very simple. It has replaced the old /etc/network/interfaces configuration file that we used to use for configuring network interfaces in Ubuntu and other Linux distributions.
NetworkConfiguration - Debian Wiki
networking - netplan or /etc/network/interfaces? - Ask Ubuntu
How to Configure Networking on Ubuntu with Netplan - VITUX
Route Table
linux - What is the interface scope (global vs. link) used for? - Unix & Linux Stack Exchange
- 本文链接:https://blog.charjin.top/2022/10/20/linux/ubuntu-network/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!
分享