当你在 Linux 或 macOS 系统中运行 dig
命令时遇到 bash: dig: command not found
错误,说明系统未安装 dig
工具。dig
(Domain Information Groper)是用于 DNS 查询的常用工具,属于 BIND 软件包的一部分。
解决方法
1. 安装 dig
(不同系统的安装方式)
Debian/Ubuntu 等基于 APT 的系统
sudo apt update sudo apt install dnsutils -y
安装后验证:
dig google.com
RHEL/CentOS/Fedora 等基于 YUM/DNF 的系统
# CentOS/RHEL 7 或更早版本 sudo yum install bind-utils -y # CentOS/RHEL 8+/Fedora sudo dnf install bind-utils -y
安装后验证:
dig google.com
Arch Linux/Manjaro
sudo pacman -S bind-tools
macOS(使用 Homebrew)
brew install bind
Windows(WSL 或手动安装)
- 方法 1:在 WSL(Windows Subsystem for Linux)中安装 Ubuntu/Debian,然后运行
sudo apt install dnsutils
。 - 方法 2:手动下载
dig
for Windows(如 BIND for Windows)。
2. 临时替代方案(如果无法安装 dig
)
如果无法安装 dig
,可以使用以下替代命令进行 DNS 查询:
使用 nslookup
(通常默认安装)
nslookup google.com
使用 host
host google.com
使用 curl
查询 DNS(如 Cloudflare 的 1.1.1.1)
curl -s https://1.1.1.1/dns-query?name=google.com | jq . # 需要安装 jq
3. 检查 dig
是否在 PATH 中
如果安装后仍然报错,可能是 dig
不在 PATH
中。手动查找 dig
的位置:
which dig
如果返回空,尝试重新安装或手动添加路径:
export PATH=$PATH:/usr/sbin # dig 通常在 /usr/sbin/dig
4. 验证 DNS 解析
安装完成后,测试 dig
是否正常工作:
dig baidu.com +short
如果返回类似 142.250.190.46
的 IP 地址,说明 dig
已正确安装。
总结
系统 | 安装命令 |
---|---|
Debian/Ubuntu | sudo apt install dnsutils |
RHEL/CentOS 7 | sudo yum install bind-utils |
RHEL/CentOS 8+/Fedora | sudo dnf install bind-utils |
Arch Linux | sudo pacman -S bind-tools |
macOS (Homebrew) | brew install bind |
Windows (WSL) | sudo apt install dnsutils |