虚拟机里搭好网站,真机却打不开,多半是网络模式没选对,或者防火墙拦了路,直接把虚拟机网络改成桥接模式,让虚拟机跟真机处在同一局域网,获取独立IP,再用真机浏览器访问这个IP,基本就能通。
先搞懂虚拟机三种网络模式的脾气
想连得顺,得先知道虚拟机怎么“上网”的,VMware和VirtualBox这类软件,默认给了三种网络模式,它们的工作方式完全不同。
NAT模式(默认最省心,但真机访问最费劲)
这种模式下,虚拟机躲在宿主机后面,通过宿主机共享IP上网,虚拟机是“隐形”的,从真机访问虚拟机里的网页,相当于要敲开宿主机的门,再让宿主机帮你传话,非常麻烦,除非你手动配置端口转发,否则真机浏览器敲虚拟机IP,大概率是“无法访问”。
桥接模式(真机访问最直接,推荐使用)
这种模式最实在,虚拟机直接“插”到宿主机所在的局域网里,相当于局域网里多了一台独立的电脑,有自己的IP地址,真机和虚拟机就像是两个邻居,互相访问非常顺畅,我搞服务器调试,基本都用这个模式。
仅主机模式(适合虚拟机之间互访,真机访问看情况)
这种模式把虚拟机和宿主机用一根“虚拟网线”连起来,组成一个私密小网络,虚拟机可以访问宿主机,但宿主机访问虚拟机,得看虚拟机的防火墙和IP配置,这个模式一般用于测试,不适合Web服务对外访问。
动手配置:最靠谱的桥接模式连接步骤
想用真机访问虚拟机里的网页,我强烈建议你切换到桥接模式,操作路径很简单,以VMware为例:
- 打开虚拟机设置,找到“网络适配器”。
- 在右侧“网络连接”里,勾选“桥接模式”,确定保存。
- 进入虚拟机系统(假设装的是Linux或Windows Server),把IP地址改成和宿主机同一个网段。
给虚拟机设置固定IP(以Linux为例)
这里有个关键点,桥接模式后,虚拟机默认可能还是用DHCP自动获取IP,这个IP可能会变,为了以后访问稳定,最好设个固定IP。
- 编辑网络配置文件(通常是
/etc/sysconfig/network-scripts/ifcfg-ens33)。 - 把
BOOTPROTO改成static。 - 添加
IPADDR(比如宿主机是192.168.1.100,虚拟机就填192.168.1.150)。 NETMASK填255.255.0,GATEWAY填你路由器的地址(通常是192.168.1.1)。- 保存后重启网络服务,命令是
systemctl restart network。
验证连通性
在真机上打开命令行,输入
ping 192.168.1.150(换成你虚拟机的IP),如果能收到回复,说明网络通了,这时候再用真机浏览器访问http://192.168.1.150,页面就能出来了。
如果还是打不开,检查这几个“拦路虎”
很多情况下,IP通了,但网页还是打不开,问题多半出在下面这几个地方。
虚拟机防火墙在“作祟”
这是最常见的问题,Linux里的firewalld或者Windows的防火墙,默认会拦截外部对80端口(HTTP)和443端口(HTTPS)的访问。
- Linux(CentOS/RHEL):执行
systemctl stop firewalld临时关闭,或者用firewall-cmd --permanent --add-port=80/tcp永久放行。 - Ubuntu:用
sudo ufw allow 80/tcp放行端口。 - Windows Server:在“高级安全Windows Defender防火墙”里,新建“入站规则”,放行TCP 80端口。
Web服务器没监听所有网卡
你的Web服务器(比如Nginx或Apache)可能只监听了0.0.1这个本地回环地址,这个地址只能本机访问,外界根本进不来。
- Nginx:检查配置文件里的
listen指令,确保是listen 80;或者listen 0.0.0.0:80;,而不是listen 127.0.0.1:80;。 - Apache:检查
httpd.conf里的Listen 80,同理,别只监听本地。
SELinux(Linux专属安全模块)在“捣乱”
CentOS等系统默认开启SELinux,它会限制HTTP服务访问非标准目录,如果你把网站文件放在/home或者/data下,很可能被SELinux拦截,临时调试可以用setenforce 0关闭,但生产环境不建议这样,最好用chcon -R -t httpd_sys_content_t /你的网站目录来修改上下文。
不同系统间的连接差异
如果你是用Windows宿主机连Linux虚拟机,或者Mac连Windows虚拟机,操作逻辑是一样的,都是走IP访问,但有一点要注意:确保真机和虚拟机在同一个网段,如果真机连的是公司路由器,虚拟机桥接的也是这个路由器,那就没问题,如果真机连着网线,虚拟机桥接的是无线网卡,这俩可能不在一个网段,就会连不上。
虚拟机桥接模式连不上怎么解决?
如果选了桥接模式,但虚拟机死活拿不到IP,或者真机ping不通:
- 检查真机是不是用了多个网卡(比如有线+无线),在虚拟机设置里,把桥接网卡明确指定为真机正在使用的那个(Realtek PCIe GbE Family Controller”)。
- 确认路由器没开启AP隔离(无线隔离),这个功能会禁止无线设备互访。
- 手动给虚拟机指定一个空闲的IP,别和路由器里其他设备冲突。
端口转发:NAT模式下的备用方案
如果因为某些原因,你没法用桥接模式(比如公司网络限制),那只能用NAT模式配合端口转发,意思就是,真机访问自己电脑的某个端口(比如8080),让虚拟机软件把这个端口的流量转给虚拟机的80端口。
- 在VMware的“编辑” -> “虚拟网络编辑器”里,选中NAT模式,点击“NAT设置”。
- 添加一条映射规则:主机端口填
8080,虚拟机的IP地址填168.x.x(你虚拟机的NAT网段IP),虚拟机端口填80。 - 保存后,真机浏览器访问
http://localhost:8080,就能看到虚拟机的网页了。
高频问题排查清单
问题没解决,别急,按这个顺序捋一遍,基本能定位。
问题1:虚拟机IP真机能ping通,但浏览器打不开网页?
- 先确认Web服务进程是不是活着,用
ps -ef | grep nginx(或httpd)查一下。 - 看服务有没有监听
0.0.0:80,用netstat -tlnp | grep 80查。 - 然后关掉虚拟机防火墙,用
systemctl stop firewalld,再刷新浏览器。
问题2:真机和虚拟机互相ping不通?
- 检查虚拟机网卡是否设置为桥接模式。
- 检查虚拟机IP和真机IP是否在同一网段(比如都是192.168.1.x)。
- 检查真机的网络是公网IP还是局域网IP,如果是公司网络,可能存在AP隔离,那怎么配都白搭。
问题3:网站能打开,但特别卡?
- 看看是不是虚拟机磁盘IO瓶颈,网页文件太大,或者PHP执行慢。
- 检查是不是真机无线网卡信号差,导致传输速率低。
问题4:用域名访问,显示“无法解析服务器的DNS地址”?
- 这是域名解析问题,如果用的是公网域名,得去域名商那做解析到你的公网IP,并且路由器要做端口映射,如果只想本地测试,干脆直接用IP访问,省去DNS麻烦。
问题5:虚拟机是Windows系统,真机怎么连?
- 步骤一样,先设置桥接模式。
- 进Windows虚拟机里,把网络连接改成手动指定IP,填上同网段的IP。
- 关掉Windows防火墙,或者干脆在防火墙里加一条入站规则,放行80端口。
常见问题速查
| 问题现象 | 可能原因 | 解决动作 |
|---|---|---|
|
真机能ping通虚拟机IP,但网页无法访问 | 虚拟机防火墙拦截 | 关闭虚拟机防火墙或放行80端口 |
| 网页提示“无法连接” | Web服务器未监听外部IP | 检查nginx/apache监听地址,改为0.0.0 |
| 网页提示“403 Forbidden” | 目录权限不足或SELinux拦截 | 给网站目录加755权限,或调整SELinux上下文 |
| 虚拟机无法上网 | 网络模式配置错误 | 检查网卡是否设置为桥接模式 |
| 真机ping不通虚拟机 | 网段不一致 | 确认两者IP在同一网段,且无AP隔离 |
| 真机访问很慢 | 无线信号差或虚拟机资源不足 | 检查无线信号强度,或给虚拟机增加内存/CPU |
Q&A:虚拟机搭了网站,真机访问时提示“无法访问此网站”怎么办?
这个问题核心在于网络通信被阻断,先执行ping 虚拟机IP,如果不通,检查网卡模式是否为桥接,以及IP是否同网段,如果通,说明网络层没问题,问题在应用层,检查虚拟机Web服务是否启动,并确认监听地址是0.0.0而非0.0.1,暂时关闭虚拟机的防火墙(systemctl stop firewalld)再试,这是最直接的排查手段。
Q&A:虚拟机桥接模式连不上怎么解决?
桥接模式连不上,多半是网卡选择问题,在虚拟机软件里,把桥接目标网卡指定为真机当前正在使用的物理网卡,比如有线网卡或无线网卡,如果公司网络开启了DHCP的IP-MAC绑定,或者AP隔离,桥接模式就会失效,可以改用NAT模式加端口转发的方式,作为替代方案,这也能实现真机访问虚拟机的目的。
Q&A:虚拟机和真机怎么互传文件?
搭建好虚拟机Web服务后,除了浏览器访问,文件互传也很常用,最方便的方法是开启虚拟机里的FTP服务(如vsftpd),然后从真机用FTP客户端连接,或者,直接使用VMware自带的“文件拖拽”功能,但大文件传输容易卡顿,更稳定的做法是,在虚拟机里搭建一个Samba共享服务,把网站目录共享出来,真机直接通过文件管理器访问,修改代码后刷新浏览器即可看到效果。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/696399.html





