Skip to content

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

ESXi 8.3 配置 DNS 示意图

最近在配置 ESXi 8.3 的网络时,遇到了几个让人摸不着头脑的问题。明明只是想设个 DNS,结果界面里冒出来“Domain name”和“Search domains”两个拦路虎,保存时各种报错。这篇文章就把我踩过的坑和解决方法记录下来,希望能帮到遇到同样问题的朋友。

背景

我用的是一台部署在 Homelab 环境中的 ESXi 8.3 主机。我打算把 DNS 服务器设置成阿里的公共 DNS(223.5.5.5223.6.6.6),网关指向 192.168.0.1

ESXi 默认的 TCP/IP 堆栈(Default TCP/IP stack)通过 vmk0 管理口连接网络。这是典型的家用或小规模实验环境配置。

首先进入 网络 → TCP/IP 堆栈,可以看到当前系统中有多个 TCP/IP 堆栈:

ESXi TCP/IP 堆栈列表

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

Default TCP/IP stack

遇到的第一个坑:Domain name 是必填项

打开 “编辑 TCP/IP 配置 - 默认 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.internalmyesxi.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.localesxi01.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 nameSearch domains 都设为了必填项,而且对格式有严格要求。特别是 Search domains 不能用逗号分隔这一点,很容易让人踩坑。

希望这篇文章能帮你少走弯路,顺利配置好 ESXi 的网络。

最后更新2026/08/08 14:08
如果你觉得这篇文章有帮助,或者想聊聊技术、工作,欢迎通过下面方式联系我:
contact fishfinal