虚拟机配置域名后无法访问,绝大多数情况是域名解析没生效,或者虚拟机网络模式选错了,按顺序排查解析、端口和防火墙,基本都能定位到问题。
虚拟机配了域名还是访问本地ip,问题出在哪
如果你在VMware或VirtualBox里装好网站,配了域名,用ip能直接打开,但域名输进去却跳到之前的本地ip页面,或者直接打不开,这通常是域名解析记录未同步到最新ip。
大部分问题是迁服务器或者虚拟机ip变动导致的,虚拟机的网络是DHCP分配时,重启后ip可能变了,但域名服务商后台的A记录还指向老地址,这就是“域名还在,网站却失踪了”的错觉。
排查流程分两步:
- 在宿主机上执行
nslookup 你的域名,确认解析结果是否等于虚拟机当前ip。 - 登录域名服务商后台,检查A记录和主机记录,确保指向目标ip。
如果结果不一致,修改解析记录后等待同步,顺便把虚拟机网络改成静态ip,一劳永逸。
另一个高发原因是网络模式搞混,业内专家指出,NAT模式下虚拟机不直接暴露给外部网络,域名指向虚拟机ip本身就无法到达,你要在虚拟网络编辑器里给NAT模式配置端口转发,把宿主机的80端口映射到虚拟机的80端口。
虚拟机部署网站外网访问不了,排查链路怎么走
既然要从外网访问虚拟机里的网站,按顺序排查下面四条链路。
- 解析链路:域名是否解析到正确的公网ip或局域网ip。
- 网络链路:宿主机能否ping通虚拟机ip,路由器是否做了端口映射。
- 服务链路

:虚拟机里的nginx或apache是否正常监听端口。
- 防火墙链路:宿主机和虚拟机的防火墙是否放行了80和443端口。
先看解析,在宿主机上执行:
nslookup 你的域名
如果返回的ip不是虚拟机ip,去DNS服务商后台核对一遍即可,表单里可能有旧的主机记录残留,比如记录和www记录指向不一致,导致域名解析出现偏差,清一下本地DNS缓存,Windows执行ipconfig /flushdns,macOS执行sudo dscacheutil -flushcache。
再看虚拟机内部的服务,登录虚拟机,执行:
netstat -tunlp | grep 80
如果没有输出,说明web服务没启动,检查监听地址是不是0.0.0,如果是0.0.1,外部的请求根本打不进来,需要修改nginx或apache配置里的listen项,再重启服务。
之后检查虚拟机防火墙,Linux发行版大多默认开启firewalld:
systemctl status firewalld
如果状态是running,执行:
firewall-cmd --permanent --add-port=80/tcp firewall-cmd --reload
Windows虚拟机需要去“高级安全防火墙”手动添加入站规则,允许80和443端口。
虚拟机配置域名后网站打不开,场景化拆解
从NAT换到桥接模式,访问立刻恢复正常
行业共识认为,对于局域网内通过域名访问虚拟机网站的场景,桥接模式是最省事的,桥接模式下,虚拟机会直接占用一个局域网ip,跟宿主机平级,外部设备可以绕过宿主机直接访问虚拟机。

把网络模式从NAT改成桥接后,虚拟机会重新获取一个同网段ip,此时再改解析记录指向新ip,访问通常立即恢复,如果网络不允许自动分配ip,需要手动配置虚拟机的静态ip、网关和DNS。
本地改完hosts文件依然打不开
有人为了测试方便,直接改宿主机hosts,把域名指向虚拟机ip,改完还是打不开,先逐一核对:
- hosts文件路径是否正确。
- 格式是否是
ip空格加域名,域名前不能带http://。 - 防病毒软件是否接管并拦截了hosts读写。
改完hosts后,浏览器缓存可能残留旧记录,开一个无痕窗口再试一次。
公司内网部分电脑能打开,部分打不开
公司局域网通常有内部DNS服务器,域名解析过程跟家用环境不同,同事的电脑解析到不同的ip,或者DNS缓存里存了旧记录,访问结果自然不一样。
解决方式:在路由器或核心交换机上把该域名的解析记录统一更新,并通知同事清除本机DNS缓存,个人开发环境需要快速生效的话,可以临时把DNS指向公共解析服务器,这类服务在域名解析服务商处一般免费提供。
域名解析与虚拟机网络配置的避坑清单
配置之前先理清一件事:域名解析是域名解析,虚拟机网络是虚拟机网络,两者独立,但最终要指向同一个结果,任何一个环节断了,域名都访问不了。
下面这张表是不同网络模式下,解析对象和访问路径的对比:
| 网络模式 | 域名解析应指向 | 需要端口转发 | 典型访问路径 |
|---|---|---|---|
|
NAT |
宿主机ip | 是 | 域名到宿主机再到虚拟机 |
| 桥接 | 虚拟机ip | 否 | 域名直达虚拟机 |
| 仅主机模式 | 宿主机ip | 是 | 仅宿主机可访问 |
关于域名解析服务,很多平台的基础解析是免费的,个人用户日常使用免费版足够,追求更快生效速度或更多记录数,可以选择付费套餐,真要问起域名解析服务一年多少钱,各家公开价格从几十到几百元不等,绑定域名和解析服务并不复杂,但建议选择大平台,后续改解析、续费和迁移都方便,据工信部备案指引,域名解析服务商的规范性会影响备案审核效率,这点需要留意。
Q&A:虚拟机配置域名访问的三个高频疑问
虚拟机里修改hosts文件,会影响宿主机吗?
不会,虚拟机的hosts文件只作用于虚拟机自身系统,与宿主机完全隔离,如果宿主机想要通过域名访问虚拟机,必须修改宿主机的hosts文件。
域名改了解析记录,多久能生效?
修改解析记录之后,全球DNS同步需要数分钟到24小时不等,如果TTL设置过低,比如600秒,生效速度会明显加快,清空本机DNS缓存后,用nslookup重复查询可以确认是否已生效。
虚拟机ip变了,域名必须跟着改吗?
需要分情况,NAT模式下域名指向宿主机ip,虚拟机ip变动只需同步修改端口转发规则,域名解析记录不用动,桥接模式下域名直接指向虚拟机ip,ip变化后必须重新修改解析记录,建议给虚拟机配置静态ip,降低这类问题的发生频次。
