适用范围: centos 7, 银河麒麟 v10, 以及其他使用 networkmanager 管理网络的 linux 发行版。
核心工具: nmcli (networkmanager command line interface)
第一步:环境诊断与确认
在修改之前,先确认网卡名称及当前 dns 管理状态。
1. 确认网卡信息
# 查看简要网卡列表 ip -br addr > lo unknown 127.0.0.1/8 ::1/128 > eth0 up 192.168.1.100/24 2001:db8::1/64 > docker0 down 172.17.0.1/16 > virbr0 down 192.168.122.1/24 # 或查看详情 ip addr > 很多东西 不好用
2. 检查 dns 管理状态
查看 /etc/resolv.conf 文件头部的注释:
cat /etc/resolv.conf
如果输出内容包含networkmanager,证明被networkmanager管理,可以采用接下来的方法
# generated by networkmanager nameserver 192.168.1.1 nameserver 8.8.8.8
或是测试命令:
systemctl status networkmanager
输出active 证明被networkmanager 管理。
如果显示inactive 或not found 或测试 systemctl status network 显示 active (running) ,请搜索被 network 管理的修改方法。
第二步:配置 dns 参数
1. 修改dns配置
# 设置首选和备用 dns # 语法: nmcli con mod <连接名> ipv4.dns "首选dns 备选dns" # 示例 (假设连接名为 eth0,使用阿里和腾讯 dns) nmcli con mod "eth0" ipv4.dns "223.5.5.5 119.29.29.29"
2. 确定是否通过 dhcp 获取 ip
# 查看所有连接的 ip 获取方式 nmcli connection show # 网卡输出示例 name uuid type device eth0 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ethernet eth0 # 查看具体网卡的 dhcp 状态 nmcli connection show eth0 | grep -i dhcp
如果输出ipv4.method: auto或者dhcp4.option[…]: server_id则说明通过dhcp获取ip。
如果启动了dhcp,则需要执行以下命令防止自动覆盖dns。
nmcli con mod eth0 ipv4.ignore-auto-dns yes
3. 重启网卡
nmcli con up eth0
第四步:验证配置
查看 dns 是否已更新
# 查看 dns 是否已更新 nmcli dev show eth0 | grep dns
再测试下dns解析是否生效
# 2. 测试dns解析 nslookup www.baidu.com # 或 dig www.baidu.com # 或 ping www.baidu.com
到此这篇关于linux服务器配置dns的完整指南的文章就介绍到这了,更多相关linux配置dns内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论