统信uos域名解析失败时,可通过五种方法配置dns:一、nmcli永久修改网络连接dns;二、编辑/etc/network/interfaces;三、临时修改/etc/resolv.conf;四、shell脚本批量部署;五、修改networkmanager全局策略。

如果您在统信UOS系统中无法正常解析域名,例如访问网站时提示“无法连接服务器”或命令行执行nslookup、ping失败,则很可能是DNS配置不正确或未生效。以下是多种可立即操作的DNS配置与修改方法,适用于不同使用场景和权限级别。
一、使用nmcli命令永久修改当前网络连接的DNS
该方法通过NetworkManager命令行工具直接修改活跃连接的IPv4 DNS设置,配置写入连接档案,重启后仍有效,且不会被DHCP覆盖。
1、列出所有网络连接,确认当前使用的连接名称:
nmcli connection show
2、假设活跃连接名为“Wired connection 1”,执行以下命令设置主备DNS:
nmcli connection modify "Wired connection 1" ipv4.dns "8.8.8.8 114.114.114.114"
3、将DNS分配方式设为手动(否则ipv4.dns参数不生效):
nmcli connection modify "Wired connection 1" ipv4.method manual
4、重新激活该连接以应用更改:
nmcli connection down "Wired connection 1" && nmcli connection up "Wired connection 1"
5、验证是否生效:
nmcli connection show "Wired connection 1" | grep dns
nslookup baidu.com
二、直接编辑网卡配置文件(/etc/network/interfaces)
该方法适用于禁用NetworkManager、采用传统ifupdown管理网络的UOS部署环境,配置持久性强,系统启动时由networking服务加载。
1、切换至root用户:
su - root
2、使用nano编辑网卡配置文件:
nano /etc/network/interfaces
3、在对应网卡段(如auto eth0、iface eth0 inet static)下添加或修改dns行:
dns-nameservers 8.8.8.8 114.114.114.114
4、保存退出后重启网络服务:
systemctl restart networking
5、检查配置是否载入:
cat /etc/resolv.conf
三、临时修改/etc/resolv.conf(重启后可能失效)
该方法直接覆盖DNS解析器配置,操作最快,但部分系统中NetworkManager或dhcpcd服务会在网络重连或重启后自动重写此文件,仅适合快速测试或临时调试。
1、备份原始配置:
sudo cp /etc/resolv.conf /etc/resolv.conf.bak
2、清空并写入新DNS:
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
echo "nameserver 114.114.114.114" | sudo tee -a /etc/resolv.conf
3、立即生效,无需重启服务:
sudo systemctl restart NetworkManager
4、防止被覆盖(可选):锁定文件权限:
sudo chattr +i /etc/resolv.conf(恢复可写需执行sudo chattr -i /etc/resolv.conf)
四、通过Shell脚本批量自动化配置DNS
该方法适用于运维人员需对多台UOS终端统一部署DNS策略的场景,脚本可远程分发执行,支持备份、回滚与日志记录。
1、创建脚本文件modify_dns.sh:
nano modify_dns.sh
2、写入以下内容(以设置8.8.8.8为主DNS):
#!/bin/bash
NEW_DNS="8.8.8.8"
sudo cp /etc/resolv.conf /etc/resolv.conf.bak.$(date +%s)
echo "nameserver $NEW_DNS" | sudo tee /etc/resolv.conf
sudo systemctl restart NetworkManager
3、赋予执行权限:
chmod +x modify_dns.sh
4、运行脚本:
./modify_dns.sh
5、验证输出:
DNS 地址已经修改为 8.8.8.8
五、修改NetworkManager默认DNS行为(全局策略)
该方法通过调整NetworkManager服务的配置,使所有新建立的连接默认使用指定DNS,避免逐个连接配置,适合标准化终端镜像预置。
1、编辑NetworkManager主配置文件:
sudo nano /etc/NetworkManager/NetworkManager.conf
2、在[main]段下添加以下两行:
dns=none
rc-manager=unmanaged
3、新建自定义resolv.conf管理策略(防止覆盖):
sudo mkdir -p /etc/NetworkManager/dnsmasq-shared.d/
echo "server=8.8.8.8" | sudo tee /etc/NetworkManager/dnsmasq-shared.d/custom-dns.conf
4、重启NetworkManager服务:
sudo systemctl restart NetworkManager
5、确认dnsmasq已启用并加载配置:
sudo journalctl -u NetworkManager | grep dnsmasq










