-bash: dig: command not found 错误的解决办法

当你在 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/Ubuntusudo apt install dnsutils
RHEL/CentOS 7sudo yum install bind-utils
RHEL/CentOS 8+/Fedorasudo dnf install bind-utils
Arch Linuxsudo pacman -S bind-tools
macOS (Homebrew)brew install bind
Windows (WSL)sudo apt install dnsutils