Ubuntu18配置dns

8 篇文章 2 订阅

问题描述

最近使用了最新版的Ubuntu 18.04运行一些服务,然后发现服务器经常出现网络不通的情况,主要是一些域名无法解析。

  1. 检查/etc/resolv.conf,发现之前修改的nameserver总是会被修改为127.0.0.53,无论是改成啥,过段时间,总会变回来。

问题排查

查看/etc/resolv.conf这个文件的注释,发现开头就写着这么一行:

### This file is managed by man:systemd-resolved(8). Do not edit.

这说明这个文件是被systemd-resolved这个服务托管的。
通过netstat -tnpl| grep systemd-resolved查看到这个服务是监听在53号端口上。
查了下,这个服务的配置文件为/etc/systemd/resolved.conf,大致内容如下:

[Resolve]
DNS=1.1.1.1 1.0.0.1
#FallbackDNS=
#Domains=
LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
#DNSStubListener=yes

解决办法:


0.禁止cloud-init修改网络配置

阿里云的ECS,默认是无法通过操作系统修改网络的,即使修改了也不会生效cloud-init会改回阿里云的默认配置。

https://help.aliyun.com/zh/ecs/user-guide/install-cloud-init?spm=a2c4g.750001.0.i1#section-v23-ilz-0cn

# 打开/etc/cloud/cloud.cfg文件
vim /etc/cloud/cloud.cfg

# 在Example datasource config之前增加network的disabled配置
# 禁止cloud-init修改DNS
network:
  config: disabled

# 重启cloud-init服务
systemctl restart cloud-init

在这里插入图片描述


1.Ubuntu切换网络管理软件

Ubuntu有两套网络管理软件:

  • server版对应的是netplannetplan默认是networkd
  • desktop版对应的是NetworkMangaer
# 编辑
vim /etc/netplan/99-netcfg.yaml

根据实际需要,切换网络管理软件
image.png
重新加载:

# 使配置生效
netplan apply

resolved.conf配置示例

/etc/systemd/resolved.conf配置文件示例

# Resolve 配置段,表示 DNS 解析器的配置
[Resolve]

# 主DNS列表
DNS=8.8.8.8
# 备用DNS列表,若首选 DNS 服务器无法使用,则会使用备用 DNS 服务器
FallbackDNS=1.1.1.1,9.9.9.9

#Domains=
# 指定 DNS 搜索域的列表,用于在主机名后添加域名进行解析

# 是否启用 LLMNR 协议,用于在本地网络中进行主机名解析,不需要依赖 DNS 服务器
LLMNR=yes

# 是否启用 mDNS 协议,mDNS 协议用于在局域网内进行主机名解析,不需要依赖 DNS 服务器
MulticastDNS=yes

# DNSSEC 可以提供 DNS 数据的身份验证和完整性保护
DNSSEC=yes

# 是否启用 DNS 缓存,用于提高 DNS 查询的速度
Cache=yes

# 是否监听 DNS 查询请求
## 若设置为 false,则会忽略 /etc/resolv.conf 中的配置
## 若设置为 true,则会将 /etc/resolv.conf 中的配置合并到本配置中
DNSStubListener=yes

# 是否启用 DNS-over-TLS,用于加密 DNS 查询请求和响应
DNSOverTLS=yes

在这里插入图片描述


2.查看dns地址

# 查看systemd-resolved服务中的dns配置
systemd-resolve --status | grep 'DNS Servers' -A2

在这里插入图片描述


3.修改dns

# 编辑resolved.conf文件
vim /etc/systemd/resolved.conf

修改配置

[Resolve]
# 取消DNS的注释
DNS=114.114.114.114 223.5.5.5

4.锁定dns配置文件

# 锁定dns配置文件
chattr +i /etc/systemd/resolved.conf

5.重启systemd-resolved服务

修改完DNS后要重启systemd-resolved服务才会生效

# 重启systemd-resolved服务
systemctl restart systemd-resolved

6.查看修改后的DNS

systemd-resolve --status

# 查看systemd-resolved服务中的dns配置
systemd-resolve --status | grep 'DNS Servers' -A2

在这里插入图片描述


补充:为/etc/resolv.conf添加额外配置

/etc/resolvconf/resolv.conf.d/head 文件用于在生成/etc/resolv.conf文件时添加额外的配置信息。这些额外的配置信息将被添加到生成的/etc/resolv.conf文件顶部,以便在系统启动时或网络配置更改保留这些配置。

# 安装resolvconf命令
apt install -y resolvconf

# resolvconf -u 之后会自动创建head文件
resolvconf -u

/etc/resolvconf/resolv.conf.d/head文件中添加

# 编辑dns配置
vim /etc/resolvconf/resolv.conf.d/head

# 配置如下
nameserver 1.0.0.1

执行 resolvconf -u/etc/resolvconf/resolv.conf.d/head文件中的配置会下发dns/etc/resolv.conf

# 下发DNS配置到/etc/resolv.conf
resolvconf -u
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

识途老码

赞赏是第一生产力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值