Appearance
ESXi 8.3 配置 DNS 避坑指南:Domain Name 和 Search Domains 到底怎么填?

最近在配置 ESXi 8.3 的网络时,遇到了几个让人摸不着头脑的问题。明明只是想设个 DNS,结果界面里冒出来“Domain name”和“Search domains”两个拦路虎,保存时各种报错。这篇文章就把我踩过的坑和解决方法记录下来,希望能帮到遇到同样问题的朋友。
背景
我用的是一台部署在 Homelab 环境中的 ESXi 8.3 主机。我打算把 DNS 服务器设置成阿里的公共 DNS(223.5.5.5 和 223.6.6.6),网关指向 192.168.0.1。
ESXi 默认的 TCP/IP 堆栈(Default TCP/IP stack)通过 vmk0 管理口连接网络。这是典型的家用或小规模实验环境配置。
首先进入 网络 → TCP/IP 堆栈,可以看到当前系统中有多个 TCP/IP 堆栈:

我们需要编辑的是 Default TCP/IP stack。

遇到的第一个坑:Domain name 是必填项
打开 “编辑 TCP/IP 配置 - 默认 TCP/IP 堆栈” 界面,选择“手动配置此 TCP/IP 堆栈的设置”后,你会看到一堆输入框。

填好 Host name、Primary DNS、Secondary DNS 后,准备点“保存”,结果发现保存按钮是灰色的,或者点了之后弹出一个红色警告:
Please provide a valid domain name, the length must be less than or equal to 62
在 ESXi 8.3 的 Web UI 中,当你选择手动配置 TCP/IP 堆栈时,Domain name 字段是强制必填的。
很多人(包括我)第一反应是:“我又不加入 Windows 域,干嘛要填域名?” 于是就空着,结果死活保存不了。
解决方法
简单,填一个合法的占位域名就行。只要符合域名格式(字母、数字、连字符、点),且长度不超过 62 个字符。
我填的是 homelab.local,保存通过。如果你不想用 .local,也可以填 lab.internal 或 myesxi.home 等。
注意:这里填的域名不需要真实存在,也不需要和你的内网环境匹配,只是一个用于标识的字符串。ESXi 会把它作为本机 FQDN 的一部分(
localhost.homelab.local)。
第二个坑:Search domains 也是必填的,而且不能填 IP 地址
填完 Domain name 之后,你可能想:“既然域名已经填了,Search domains 应该可以空着吧?”
不行。在 ESXi 8.3 的手动配置界面里,Search domains 同样是必填字段,不允许为空。
如果你试图留空,或者填入 223.5.5.5 这样的 IP 地址,会报错:
Please provide valid search domains, one per line, no commas.
如果你误用逗号分隔多个域名(比如 homelab.local, lab.internal),同样会触发这个错误。
问题的本质
Search domains(搜索域)和 DNS 服务器完全是两码事,很多人(包括我)在这里被迷惑了。
| 配置项 | 作用 | 合法格式 |
|---|---|---|
| Primary/Secondary DNS server | 域名解析服务器地址 | IP 地址(如 223.5.5.5) |
| Search domains | 短主机名自动补全的后缀 | 域名格式(如 homelab.local) |
Search domains 的作用是:当你执行 ping esxi01 时,系统会依次尝试 esxi01.homelab.local、esxi01.lab.internal 等,省去输入完整域名的麻烦。
正确的填写方式
既然不能为空,那就填一个和 Domain name 一样的域名即可:
homelab.local如果有多个搜索域,按每行一个的格式填写:
homelab.local
corp.internal绝对禁止:用逗号、空格或分号分隔。ESXi 只认换行。
保存成功!验证配置
按照上述方法填写完整后,点击保存,界面提示配置更新成功:

回到 TCP/IP 堆栈详情页,可以看到 DNS 配置已经生效:
- DNS 地址:
223.5.5.5, 223.6.6.6 - Domain name:
homelab.local - 路由表:
0.0.0.0/24 -> 192.168.0.1 (vmk0)
一切正常!
最终配置总结
经过一番折腾,我的最终配置如下:
主机名: localhost
域名: homelab.local
首选 DNS: 223.5.5.5
备选 DNS: 223.6.6.6
搜索域: homelab.local
IPv4 网关: 192.168.0.1快问快答
Q:Domain name 填 localhost 不行吗?
不行。localhost 不是合法的域名格式(顶级域缺失),ESXi 会拒绝保存。
Q:Search domains 可以留空吗?
在 ESXi 8.3 的“手动配置”模式下,不可以。这是一个必填字段,必须填入至少一个合法的域名。
Q:Search domains 和 Domain name 填一样的可以吗?
可以,而且这是最不容易出错的填法。
Q:能不能通过命令行跳过这些限制?
可以。用 esxcli network ip dns server add 添加 DNS,用 esxcli system hostname set 设置主机名和域名,GUI 的限制在命令行下不存在。
Q:填了这些之后影响我访问互联网吗?
不会。Domain name 和 Search domains 都是本机和内网环境的标识配置,不影响对外域名的解析。
结语
ESXi 的 Web UI 在“手动配置”模式下,把 Domain name 和 Search domains 都设为了必填项,而且对格式有严格要求。特别是 Search domains 不能用逗号分隔这一点,很容易让人踩坑。
希望这篇文章能帮你少走弯路,顺利配置好 ESXi 的网络。
