答案:Linux中DNS通过/etc/resolv.conf配置,可手动修改nameserver等参数,但需注意NetworkManager或systemd-resolved可能覆盖更改,推荐通过nmcli或systemd-resolved管理以确保持久生效。

在Linux系统中,DNS解析主要通过 /etc/resolv.conf 文件进行配置。这个文件定义了系统用于解析域名的DNS服务器地址和搜索域等信息。虽然现代Linux发行版常使用NetworkManager或systemd-resolved动态管理该文件,但了解如何手动修改和配置它仍然非常实用。
resolv.conf 文件的基本结构
该文件通常包含以下类型的配置行:
nameserver:指定DNS服务器IP地址,最多可配置3个 search:定义域名搜索列表,用于补全短域名 domain:设置本地域名(通常由search替代) options:配置解析器行为,如超时、重试次数等
示例:
nameserver 8.8.8.8
nameserver 8.8.4.4
search example.com internal.example.com
options timeout:2 attempts:3
直接修改 resolv.conf(适用于临时配置)
你可以使用文本编辑器直接编辑该文件:
sudo nano /etc/resolv.conf
添加或修改 nameserver 行,保存退出即可生效。但注意:如果系统使用NetworkManager或systemd-resolved,你的修改可能会被覆盖。
防止配置被覆盖的方法
若发现修改后配置自动恢复,说明有服务在管理该文件。常见解决方式:
使用 chattr 命令锁定文件(谨慎使用): sudo chattr +i /etc/resolv.conf
这将防止任何程序修改该文件。需要解除时使用:sudo chattr -i /etc/resolv.conf
图改改
在线修改图片文字
455 查看详情
通过NetworkManager配置DNS(推荐): nmcli con show
nmcli con mod “连接名” ipv4.dns “8.8.8.8 1.1.1.1”
nmcli con up “连接名”
这样NetworkManager会自动更新resolv.conf且不会被覆盖。
使用systemd-resolved统一管理:
编辑 /etc/systemd/resolved.conf:
[Resolve]
DNS=8.8.8.8 1.1.1.1
Domains=example.com
然后启用服务:
sudo systemctl enable systemd-resolved
sudo systemctl restart systemd-resolved
并确保 /etc/resolv.conf 指向它:sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
验证DNS配置是否生效
使用以下命令测试解析是否正常:
ping google.com
nslookup example.com
dig example.com
查看当前生效的DNS:
cat /etc/resolv.conf基本上就这些。修改resolv.conf看似简单,但需注意系统是否由其他服务动态管理。选择合适的方法才能确保配置持久有效。
以上就是如何在Linux中配置DNS解析 Linux resolv.conf文件修改的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/431736.html
微信扫一扫
支付宝扫一扫