linux的DNS配置以及上游NetworkManager和Netplan共存

问题描述:

系统信息:

ubuntu 20.04 LTS (server)
DCU服务器

今天dcu服务器,在ping baidu.com的时候报错如下:

ping baidu.com
Temporary failure in name resolution

(打开浏览器访问也不行,右上角能看到wifi图标,但是标有?)。
报这个错误,意思是域名解析时暂时失败。实际上是DNS的配置有问题。

解决方案:DNS配置

治标:

Linux 系统通常通过修改/etc/resolv.conf 来设置DNS(域名解析器,用来解析域名为ip),原始内容如下:

nameserver 127.0.0.53
options edns0 trust-ad

我们需要删除原来的内容,(因为原始内容是ubuntu20.04的初始化),添加新的内容如下(Google Public DNS)

nameserver 8.8.8.8
nameserver 114.114.114.114

但是这样子修改后,一旦进行重启NM的操作

sudo systemctl restart network-manager

/etc/resolv.conf 文件就会被重写为初始内容。
那么我们该怎么做呢?

治本:

原来/etc/resolv.conf这个文件由man:systemd-resolved管理来动态生成。

解决方案如下:

1.修改 /etc/systemd/resolved.conf ()

[Resolve]
DNS=8.8.8.8 114.114.114.114
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#DNSOverTLS=no
#Cache=no-negative
#DNSStubListener=yes
#ReadEtcHosts=yes

将DNS改写,并且这个文件并不会被动态生成,而是保持原状。
2.重启systemd-resolved(systemd家族组件,用于域名解析)

sudo systemctl restart systemd-resolved
sudo systemctl enable systemd-resolved

3.软链接:管理文件–>动态生成的文件

#备份
sudo mv /etc/resolv.conf  /etc/resolv.conf.bak
#软链接:/run/systemd/resolve/resolv.conf <------ /etc/resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf

接下来就可以愉快的玩耍了,如果不行,重启一下网络(NM)

sudo systemctl restart network-manager

引发原因:

waiting to fill…

误区:

说是误区其实也不是,因为这些都是必须走通的道路,才能发现上面最终原因是DNS配置,不过今天在配置好了这个之后一直以为是没配好,没有向下继续排查,这个是一个误区。

Netplan

Ubuntu 通过 Netplan 配置网络教程 - 知乎 (zhihu.com)

netplan是一个linux的网络配置工具,用yaml格式配置网络,可以配置多种网络接口的配置,给出以下几个示例:

配置:/etc/netplan/00-installer-config.yaml文件

vim /etc/netplan/00-installer-config.yaml 
  • DHCP:
network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      dhcp4: true
  • 静态IP
network:
  version: 2
  renderer: networkd
  ethernets:
    enp3s0:
      addresses:
        - 10.0.0.10/8
      gateway4: 10.0.0.1
      nameservers:
          search: [mydomain, otherdomain]
          addresses: [10.0.0.5, 1.1.1.1]
  • NetworkManager托管:(我们最后用的就是这个方案)
network
  version : 2
  rederer : NetworkManager

执行这个命令可以使得命令生效:

sudo netplan apply

NetworkManager

这是另一个网络管理软件,更适合桌面操作,但实际上我们并没有用它做什么,只是把Netplan指向它,不做过多赘述。

总结:

在ubuntu中有两个可选的网络管理软件:Netplan和NetworkManager,他们可以共存,只需设置Netplan,而NetworkManager不修改,说是共存,实际上主要是NM在托管。

vim /etc/netplan/00-installer-config.yaml 
network
  version : 2
  rederer : NetworkManager

在设置好网络管理软件后,还需要额外进行DNS的配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值