在 Linux 系统中,“搜索域”(Search Domain)通常指的是 DNS 搜索域,它允许你在访问主机时,自动补全主机名,而不需要输入完整的域名。
如果你设置了搜索域为 example.com,那么当你尝试访问主机 server 时,系统会自动尝试解析 server.example.com。
以下是几种常见的配置和查看搜索域的方法:
查看当前的搜索域
使用 resolv.conf 文件
这是最传统的方式,适用于大多数传统 Linux 发行版(如 CentOS 7 及之前版本、Debian 等)。
cat /etc/resolv.conf
你会看到类似这样的内容:
nameserver 8.8.8.8
search example.com internal.example.com
nameserver:指定 DNS 服务器地址。search:指定搜索域列表,多个域用空格分隔。
使用 systemd-resolve 或 resolvectl(推荐用于 systemd 系统)
在现代 Linux 发行版(如 Ubuntu 18.04+、CentOS 8+、Fedora 等)中,DNS 配置通常由 systemd-resolved 管理。
resolvectl status
或者查看特定接口的 DNS 信息:
resolvectl dns eth0 resolvectl domains eth0
注意:
/etc/resolv.conf可能是一个指向/run/systemd/resolve/stub-resolv.conf或/run/systemd/resolve/resolv.conf的符号链接。
使用 nmcli(NetworkManager 用户)
如果你使用 NetworkManager 管理网络(如 Ubuntu 桌面版、CentOS 8+ 等):
nmcli dev show eth0 | grep DNS nmcli dev show eth0 | grep DOMAIN
永久配置搜索域
编辑 /etc/resolv.conf(不推荐用于 systemd 系统)
直接编辑 /etc/resolv.conf,但注意:在 systemd 系统中,这个文件可能是只读的或自动生成的,修改后可能被覆盖。
sudo nano /etc/resolv.conf
添加或修改:
search example.com internal.example.com
nameserver 8.8.8.8
通过 NetworkManager 配置(推荐)
使用 nmcli 或图形界面配置。
使用 nmcli:
# 修改现有连接 sudo nmcli connection modify eth0 ipv4.dns-search "example.com internal.example.com" # 重启网络服务使配置生效 sudo nmcli connection up eth0
使用图形界面(GNOME/KDE):
- 打开“网络设置”。
- 选择对应的网络连接(如 Ethernet)。
- 点击“IPv4”或“IPv6”标签。
- 在“DNS 服务器”下方,找到“搜索域”字段,输入你的域名(多个用逗号或空格分隔)。
- 保存并重启网络。
通过 systemd-networkd 配置
如果你使用 systemd-networkd 管理网络:
编辑对应的 .network 文件,/etc/systemd/network/eth0.network:
[Network] DNS=8.8.8.8 Domains=example.com internal.example.com
然后重启 systemd-networkd:
sudo systemctl restart systemd-networkd
通过 Netplan 配置(Ubuntu 18.04+)
编辑 /etc/netplan/01-netcfg.yaml(文件名可能不同):
network:
version: 2
ethernets:
eth0:
dhcp4: no
addresses: []
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
search: [example.com, internal.example.com]
应用配置:
sudo netplan apply
临时测试搜索域是否生效
你可以使用 dig 或 nslookup 来测试:
# 测试 server 是否能解析为 server.example.com dig server.example.com # 或者直接使用短主机名(如果搜索域配置正确) dig server
dig server 返回了 server.example.com 的 IP 地址,说明搜索域配置成功。
| 方法 | 适用场景 | 持久性 |
|---|---|---|
/etc/resolv.conf |
传统系统、临时测试 | 非持久(可能被覆盖) |
nmcli |
NetworkManager 系统 | 持久 |
netplan |
Ubuntu 18.04+ | 持久 |
systemd-networkd |
systemd 系统 | 持久 |
建议:在现代 Linux 系统中,优先使用 nmcli、netplan 或 systemd-networkd 来配置搜索域,以确保配置在重启后仍然有效。
首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/487345.html



