Ubuntu DNS 设置

本文介绍了一种确保DNS服务器设置不会因重启而丢失的方法。通过在/etc/resolvconf/resolv.conf.d/base文件中添加nameserver 8.8.8.8,即使系统重启,指定的DNS服务器地址也能保持不变。

手动在/etc/resolv.conf中添加nameserver 8.8.8.8解析服务器后,重启电脑会丢失,必须重新手动添加才可以。

网上搜来个特别有效的方法,编辑/etc/resolvconf/resolv.conf.d/base文件,在此文件中写入DNS服务器地址就可以

echo nameserver 8.8.8.8 >>  /etc/resolvconf/resolv.conf.d/base

重启多少都不会将DNS服务器IP丢失掉。


PS:如果/etc/resolvconf/resolv.conf.d/base文件不存在或者“resolv.conf.d”这个目录不存在,可以自己新建一个

mkdir -p resolv.conf.d

touch base

<think>好的,我现在需要帮助用户在Ubuntu系统中配置DNS设置。用户之前的问题是关于DNS解析的,现在他们想知道如何在Ubuntu中进行配置。我需要参考用户提供的站内引用,并结合自己的知识来给出正确的步骤。 首先,用户给出的引用[1]提到了使用systemd-resolved服务,通过编辑/etc/systemd/resolved.conf文件来设置DNS。引用[2]提到了使用netplan配置YAML文件来设置DNS,而引用[3]看起来不太相关,可能包含了一些无关信息,比如面试资料,这部分可以忽略。 接下来,我需要确定Ubuntu系统中常用的DNS配置方法。通常有两种主要方式:使用Netplan(适用于较新的Ubuntu版本,如18.04及以上)和直接修改resolv.conf文件(传统方法,但可能不持久)。此外,systemd-resolved也是一个现代的方法,需要配置相关文件并重启服务。 用户可能希望了解多种方法,所以应该分步骤介绍不同的配置方式。需要确保步骤清晰,命令准确,并指出不同方法的适用场景。比如,Netplan是推荐的方式,因为它管理网络配置更系统化,而手动修改resolv.conf可能在重启后失效。 还要注意引用中的配置示例是否正确。例如,引用[1]中的DNS=223.5.5.5 223.6.6.6是否正确,以及是否需要取消注释该行。引用[2]中的netplan配置是否正确,比如缩进和语法是否正确,是否需要应用配置。 此外,用户可能需要知道如何验证DNS是否生效,比如使用nslookup或dig命令测试。同时,提醒用户可能的常见问题,比如缓存问题,需要刷新systemd-resolved或重启服务。 最后,确保回答结构清晰,分点说明,并包含验证步骤和注意事项,帮助用户全面理解并避免常见错误。</think>### Ubuntu系统DNS配置方法详解 根据您的需求,以下是Ubuntu系统中三种主流DNS配置方法,涵盖传统方案和现代管理工具(推荐优先使用Netplan方案): --- #### 一、Netplan配置方案(Ubuntu 18.04+ 推荐) 适用于使用网络管理服务的系统(如NetworkManager、systemd-networkd) 1. **编辑YAML配置文件** 打开对应网络接口配置文件(不同机器可能名称不同): ```bash sudo vim /etc/netplan/01-netcfg.yaml # 文件名可能为50-cloud-init.yaml等 ``` 添加`nameservers`字段: ```yaml network: version: 2 renderer: networkd # 或NetworkManager ethernets: eth0: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4] # 主备DNS服务器 optional: true ``` > 注:严格遵循YAML缩进语法,冒号后需空格[^2] 2. **应用配置** ```bash sudo netplan apply ``` --- #### 二、systemd-resolved服务配置(Ubuntu 16.04+) 适用于使用systemd管理的系统 1. **修改全局配置** 编辑配置文件并取消注释DNS行: ```bash sudo vim /etc/systemd/resolved.conf ``` ```ini [Resolve] DNS=223.5.5.5 223.6.6.6 # 阿里云DNS FallbackDNS=8.8.8.8 1.1.1.1 Domains=~. ``` 2. **重启服务并创建符号链接** ```bash sudo systemctl restart systemd-resolved sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf ``` --- #### 三、传统resolv.conf配置(临时方案) ⚠️ 注意:重启后可能失效,需配合持久化配置 1. **直接修改文件** ```bash sudo vim /etc/resolv.conf ``` 添加DNS服务器: ```conf nameserver 8.8.8.8 nameserver 8.8.4.4 ``` 2. **防止覆盖配置**(可选) 若使用DHCP,修改`/etc/dhcp/dhclient.conf`: ```bash sudo sed -i 's/#prepend domain-name-servers/prepend domain-name-servers 8.8.8.8;/' /etc/dhcp/dhclient.conf ``` --- #### ▶️ 验证配置 ```bash # 查看生效DNS systemd-resolve --status | grep 'DNS Servers' -A2 # 或 nslookup google.com # 检查连通性 dig @8.8.8.8 google.com +short ``` --- #### 常见问题排查 1. **配置未生效** - 检查Netplan缩进是否正确(推荐使用`yamllint`工具) - 确认未同时启用多个网络管理服务(如networkd与NetworkManager冲突) 2. **DNS劫持检测** ```bash dig +short TXT whoami.ds.akahelp.net # 显示实际响应的DNS服务器 ``` 3. **缓存刷新** ```bash sudo systemd-resolve --flush-caches ``` --- **选择建议**:生产环境推荐使用Netplan方案,其配置可版本化管理且兼容云初始化工具。若需快速临时修改,可采用传统resolv.conf方法[^1][^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值