在 Linux 系统中,查看 DNS 是否启动或当前 DNS 配置的方法取决于系统使用的 DNS 服务类型,以下是常见的几种场景和对应的命令:

传统模式(/etc/resolv.conf)
cat /etc/resolv.conf
输出示例:
nameserver 8.8.8.8 nameserver 1.1.1.1
systemd-resolved(常见于 Ubuntu 18.04+、Fedora、Arch Linux)
resolvectl status
或者查看其生成的配置:
cat /run/systemd/resolve/resolv.conf
NetworkManager 管理

nmcli dev show | grep DNS
2.1 对于 BIND / named 服务
systemctl status named 或 ps aux | grep named
2.2 对于 systemd-resolved
systemctl status systemd-resolved
2.3 对于 dnsmasq(常作为本地缓存 DNS)
systemctl status dnsmasq
ps aux | grep -i "dns\|resolved\|named"
3. 测试 DNS 解析是否正常(间接验证服务是否启动)
nslookup www.baidu.com dig www.baidu.com host www.baidu.com
如果返回正确 IP,说明 DNS 服务正常工作。

4. 查看系统日志(确认 DNS 服务启动或报错)
systemd 相关服务日志
journalctl -u systemd-resolved --no-pager | tail -20 journalctl -u named --no-pager | tail -20
传统 syslog
grep -i "dns\|named\|resolved" /var/log/syslog
| 需求 | 命令 | |||
| 当前 DNS 服务器 | cat /etc/resolv.conf | |||
| 服务是否运行 | systemctl is-active systemd-resolved 或systemctl is-active named | |||
| 所有 DNS 相关进程 | ps aux | grep -E 'dns | resolved | named' |
| 测试解析 | nslookup example.com |
根据你的 Linux 发行版选择对应命令即可,如果需要进一步“启动”DNS 服务,可以使用systemctl start <服务名>,例如systemctl start systemd-resolved。
文章摘自:https://idc.huochengrm.cn/dns/26166.html
评论
泰慧颖
回复Linux系统查看DNS启动方法:使用命令`systemctl status dnsmasq`或`systemctl status NetworkManager`。