Netplan 是在Ubuntu操作系统中用于配置网络连接的工具。它是 Ubuntu 17.10 及以后版本引入的,旨在简化网络配置。
Netplan 使用 YAML 格式的配置文件来描述网络配置。在 YAML 中可以配置IP地址、子网掩码、网关、DNS服务器以及路由参数。一旦配置完成,可以使用 netplan apply 命令应用配置,使更改立即生效。
Netplan 网络配置文件位置在 etc/netplan/*.yaml,静态IP的例子如下:
# cat /etc/netplan/00-installer-config.yamlnetwork:version: 2ethernets:ens17f0:addresses: [192.168.1.1/24]routes:- to: 0.0.0.0/0via: 192.168.1.254on-link: truenameservers:addresses: [8.8.8.8, 8.8.4.4]
执行 apply 命令使网络配置生效:
# netplan apply
获取当前生效的配置:
# netplan get allnetwork:version: 2ethernets:ens17f0:addresses:- "192.168.1.1/24"nameservers:addresses:- 8.8.8.8- 8.8.4.4routes:- on-link: trueto: "0.0.0.0/0"via: "192.168.1.254"
查看 DNS 配置:
# cat /etc/resolv.confnameserver 127.0.0.53options edns0 trust-adsearch .
DNS 使用 127.0.0.53 作为通讯地址。
127.0.0.53 与 127.0.0.1 一样,也是一个回环地址(loopback address),这个地址被用作本地 DNS 解析器的地址。
在 Ubuntu 17.04 及之后的版本中,系统使用 systemd-resolved 作为本地 DNS 解析器。systemd-resolved 服务监听 127.0.0.53 地址上的DNS查询请求,并通过网络解析器来处理这些请求。这使得系统可以在本地解析域名而不需要直接访问网络上的 DNS 服务器。一般我们会配上游 DNS 服务,本地解析器只做转发。
通过 resolvectl 命令可以查上游 DNS 地址是否配置正确:
# resolvectl statusGlobalProtocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupportedresolv.conf mode: stubLink 2 (ens17f0)Current Scopes: DNSProtocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupportedCurrent DNS Server: 8.8.8.8DNS Servers: 8.8.8.8 8.8.4.4
为了使更改后的 DNS 生效,可以重启网络服务:
# systemctl restart systemd-networkd
需要注意的是,如果启用了 iptables,需要将回环地址放行, DNS 才能通:
# iptables -I INPUT -s 127.0.0.53 -j ACCEPT# iptables -I INPUT -s 127.0.0.1 -j ACCEPT
当使用 nslookup 验证 DNS 解析时,如果发现 DNS 解析失败,可以检查一下是否是因为回环地址被防火墙阻止了。
全文完。
如果转发本文,文末务必注明:“转自微信公众号:生有可恋”。
文章转载自生有可恋,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




