游客发表
虚拟机装好了,虚拟本地访问一切正常,机设局域可隔壁工位的置让小王输入你给的IP却打不开页面——这场景我见过太多次了。问题基本都出在虚拟机的网访问网络模式上,默认的虚拟NAT模式把虚拟机藏在了内网里,外人自然找不到它。机设局域想让局域网里的置让其他机器直接访问,你得把虚拟机的网访问网络改成桥接模式,或者做好端口转发,虚拟二选一,机设局域看你的置让具体需求。
先说说桥接模式,网访问这是虚拟最直观的方案。在VMware或VirtualBox里,机设局域把虚拟机的置让网络连接从“NAT”切换到“桥接模式”(Bridge),相当于给虚拟机在局域网里发了一张独立的“身份证”,它自己会从路由器获取一个和宿主机同网段的IP。比如宿主机是192.168.1.100,虚拟机可能变成192.168.1.101。设置完后,你需要在虚拟机里确认一下IP地址——Linux用ip addr,Windows用ipconfig。拿到IP后,让小王直接浏览器访问这个地址,就能看到你的服务了。
桥接模式有个坑,我得提醒你:有些公司网络做了MAC地址绑定或者端口隔离,桥接后虚拟机可能上不了网,或者只能和部分机器互通。这时候别硬扛,换端口转发方案更省心。以VirtualBox为例,保持NAT模式不变,打开“网络设置”里的“端口转发”规则,把宿主机的某个端口(比如8080)映射到虚拟机的80端口。规则写成这样:协议TCP,主机IP留空或填127.0.0.1,主机端口8080,子系统IP填虚拟机内网IP(NAT模式下通常是10.0.2.15),子系统端口80。保存后,局域网里的人访问http://宿主机IP:8080,请求就会自动转进虚拟机里的服务。
VMware用户操作类似,但路径藏在“编辑虚拟机设置”的“网络适配器”里,选“NAT模式”后点开“高级”,能找到端口转发按钮。这里有个细节:宿主机防火墙得放行对应端口,否则外部请求会被拦在门外。Windows宿主机记得在“高级安全Windows Defender防火墙”里添加入站规则,Linux宿主机用firewall-cmd或iptables放行端口。这一步漏了,前面全白干。
实际测试时,别只在宿主机上自测——那根本测不出问题。你要么用手机连同一个WiFi访问,要么让小王从他电脑上敲地址。我见过有人折腾半天,结果发现是虚拟机里的服务只监听了127.0.0.1,根本没监听对外网卡。去服务配置文件里把监听地址改成0.0.0.0,重启服务,再试一次。
最后说个偷懒技巧:如果你只是临时想给同事看个演示,不用改网络模式,直接在VirtualBox的“显示”设置里启用“远程显示”协议,或者用ngrok这类内网穿透工具,把虚拟机里的端口映射到一个公网临时域名,对方浏览器直接打开那个链接就能访问,省去局域网配置的麻烦。但长期用的话,还是老老实实把网络模式搞明白,毕竟稳定性和速度都更靠谱。
友情链接