服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-10-15 更新于 2026-10-15 简米科技 3,635 字 9 分钟阅读

虚拟机怎么设置域名才能外网访问?,虚拟机外网访问如何设置

导读要让虚拟机通过域名被外网访问,核心链路是“公网IP或内网穿透 + 域名解析 + 端口转发 + 防火墙放行”四步, 配好这四条链路,别人在浏览器里输入你的域名,就能直达虚拟机里跑的服务,虚拟机域名配置外网访问的核心前提先搞清楚一个概念:虚拟机本身没有物理网卡,它借用宿主机的网络资源上网,外网访问虚拟机,本质上是把……

要让虚拟机通过域名被外网访问,核心链路是“公网IP或内网穿透 + 域名解析 + 端口转发 + 防火墙放行”四步。 配好这四条链路,别人在浏览器里输入你的域名,就能直达虚拟机里跑的服务。

虚拟机域名配置外网访问的核心前提

先搞清楚一个概念:虚拟机本身没有物理网卡,它借用宿主机的网络资源上网,外网访问虚拟机,本质上是把外部流量引导到宿主机,再由宿主机转交给虚拟机的某个端口,跳过了这个逻辑,后面所有配置都是白搭。

外网访问虚拟机需要公网IP吗

分两种情况看:

  • 有公网IP:直接做端口映射,把路由器或宿主机的端口转发到虚拟机的内网地址。
  • 没有公网IP:只能借助内网穿透工具,比如frp、ngrok、花生壳,通过一台有公网IP的中转服务器把流量引进来。

国内家庭宽带绝大多数分配的是内网IP,电信、联通这类运营商近年逐步回收了公网IPv4地址。多数情况下,你需要先确认宽带运营商是否分配了公网IP,打客服电话问“我的宽带是不是公网IP”即可,或者登录路由器后台看WAN口IP,和百度搜出来的IP一致就是公网。

VMware、Hyper-V与VirtualBox的虚拟网络模式差别

不同虚拟机平台的网络模式,直接影响域名配置的路径,行业共识认为:NAT模式适合单机调试,桥接模式适合直接暴露给局域网,而外网访问通常需要额外做端口映射。

平台 推荐网络模式 外网访问方式
VMware Workstation NAT 宿主机端口转发到VMnet8
Hyper-V 外部虚拟交换机 虚拟机直接获取局域网IP,再走路由器端口映射
VirtualBox NAT或桥接 NAT需配置端口转发规则,桥接则走路由器映射

如果你在用VMware,菜单栏打开“编辑 → 虚拟网络编辑器”,选中VMnet8(NAT模式),点击“NAT设置”,在里面添加端口转发规则,比如宿主机监听80端口,转发到虚拟机内网IP的80端口,这样外网访问宿主机IP:80就等于访问虚拟机。

虚拟机怎么设置域名才能外网访问?,虚拟机外网访问如何设置

有公网IP时虚拟机怎么设置域名

有了公网IP,域名配置就变成两个动作:域名解析指向公网IP,端口映射指向虚拟机。

域名解析到公网IP的操作路径

购买域名后,在DNS服务商的控制台添加一条A记录:

  1. 主机记录填www,记录值填你的公网IP,TTL默认即可。
  2. 如果想让根域名也生效,再添一条主机记录为的A记录。
  3. 等解析生效,本地打开命令提示符,输入ping www.你的域名.com,返回的IP和你的公网IP一致就说明解析成功了。

公网IP是动态的也没关系,用DDNS替代普通A记录,国内常见方案是路由器自带DDNS功能,配合花生壳或公云,域名固定不变,IP变了自动更新。

路由器端口映射是虚拟机连通的命门

这一步出错最多,登录路由器管理页,找到“端口映射”或“虚拟服务器”选项,添加一条规则:

  • 外部端口:填80或8080(取决于你准备用哪个端口访问)。
  • 内部IP:填虚拟机的内网IP。
  • 内部端口:填虚拟机服务实际监听的端口。

家里的光猫如果是拨号模式,需要先让光猫改为桥接模式,否则路由器做的端口映射会失效,这一步建议直接联系宽带装维师傅远程改,自己在光猫后台瞎改容易把网络搞断。

没有公网IP时虚拟机域名方案

没公网IP,虚拟机域名配置外网访问就得换条路,frp是目前用得最多的开源内网穿透工具,配置逻辑清晰,适合自己租一台带公网IP的轻量云服务器做中转。

frp内网穿透的搭建步骤

服务端(云服务器)配置frps.toml:

  • bindPort = 7000 是frp的通信端口。
  • auth 里设置一个 token,相当于密码。

客户端(宿主机或虚拟机里)配置frpc.toml:

serverAddr = "你的云服务器IP"
serverPort = 7000
auth.token = "你设置的token"
[[proxies]]
name = "web"
type = "tcp"
localIP = "虚拟机内网IP"
localPort = 80
remotePort = 8080

启动客户端后,外网访问

虚拟机怎么设置域名才能外网访问?,虚拟机外网访问如何设置

你的云服务器IP:8080,流量就会通过frp隧道转发到虚拟机的80端口,然后把域名解析到云服务器的公网IP,虚拟机的域名访问就通了。

相比有公网IP的方案,frp多了一层中转,延迟会高些,但胜在不依赖运营商分配公网IP,搬迁机房、换宽带都不用重配域名,市面上也有ZeroTier和Tailscale这类组网工具,它们适合小范围固定设备访问,和域名搭配使用时,公网访问稳定性不如frp。

防火墙与安全组配置,让域名能通但访问不卡

端口映射做完还不行,防火墙和安全组会把流量拦在门外,这是虚拟机域名配置外网访问里最容易踩坑的一环。

Windows虚拟机防火墙放行端口

在Windows虚拟机里,用管理员权限打开PowerShell,执行:

netsh advfirewall firewall add rule name="web-http" dir=in action=allow protocol=TCP localport=80

这条命令放行80端口,如果服务跑在8080,把localport改成对应数字,执行完后,外网请求才能穿透Windows防火墙。

云服务器安全组的入口规则

如果你用的是云服务器做frp中转,登录云控制台找到“安全组”或“防火墙”,添加入方向规则:

  • 协议:TCP。
  • 端口:7000和8080(或你实际用的端口)。
  • 来源:0.0.0.0/0,表示允许所有IP访问。

安全组没有放行时,即使frp服务端正常运行,外部连接也会超时。云厂商控制台的安全组优先级高于服务器系统防火墙,这个特性经常让人排查半天找不到原因。

域名备案与HTTPS的进阶问题

虚拟机上跑的如果是网站类服务,域名不只是解析和端口的问题,还要过备案和HTTPS这两关。

国内服务器域名备案是硬门槛

据工信部规定,域名解析到国内机房(包括云服务器)的IP时,必须先完成ICP备案,未备案的域名指向国内服务器,HTTP请求会被服务商拦截,解决方法:

  • 服务器在境外的,可以绕过备案,但延迟偏高。
  • 服务器在国内的,通过云厂商的备案系统提交资料,通常10-20个工作日。
  • 虚拟机怎么设置域名才能外网访问?,虚拟机外网访问如何设置

HTTPS证书申请与自动续期

域名能通过HTTP访问后,就应该上HTTPS,用Let's Encrypt的免费证书,90天有效期,配合acme.sh脚本自动续期,在虚拟机里执行:

curl https://get.acme.sh | sh
acme.sh --issue -d 你的域名 --nginx

续期由cron定时任务自动完成。HTTPS不仅加密传输,还能避免运营商在HTTP页面里插广告,HTTP/2和HTTP/3的强制要求也都建立在HTTPS之上,这一步早晚要补齐。

虚拟机与云服务器设置域名的区别

很多朋友把本机虚拟机和云服务器混为一谈,实际上两者设置域名的路径完全不同:

  • 云服务器自带公网IP,域名解析后直接指向即可,不需要考虑路由器端口映射。
  • 本机虚拟机有没有公网IP决定方案走向,有IP走端口映射,没IP走内网穿透。
  • 云服务器有现成的安全组控制台,本机虚拟机需要手动配置宿主机和虚拟机的双层防火墙。

这个区别在选择方案时很关键,如果只是学习测试,用本机虚拟机加frp成本最低;如果是正式业务,云服务器加域名备案的链路更省心。

虚拟机域名外网访问常见问题解答

域名解析到公网IP之后,外网还是打不开虚拟机?

先排查三个位置:路由器端口映射是否指向虚拟机内网IP,宿主机的防火墙是否放行对应端口,虚拟机系统防火墙是否放行对应端口,多数情况下是其中一环被忽略了。

虚拟机里的网站绑定域名后,本地能访问但手机4G打不开?

手机用4G网络访问,走的是运营商出口,和你在同一局域网用WiFi访问走的路由完全不同,手机打不开说明端口映射或防火墙配置对公网无效,重点检查路由器WAN口是否有公网IP,以及端口映射规则是否绑定在正确的接口上。

用内网穿透访问虚拟机每次域名端口都不一样,怎么固定?

frp可以配置自定义域名,在frpc.toml的[[proxies]]里加上customDomains = ["你的域名"],然后给云服务器上的Nginx配一条反向代理,把域名指向frp监听端口,这样域名就固定了,不需要每次记住一串随机端口。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱