如何让Linux主机上的Flutter识别VirtualBox虚拟机中的Windows设备,配合Android Studio/VSCode实现桌面应用开发?
解决Flutter无法识别VirtualBox中Windows虚拟机的问题
我之前也碰到过一模一样的情况——Linux主机上用VirtualBox跑Windows虚拟机,桥接网络能ping通,但Flutter设备列表里就是找不到它。折腾了好一会儿才弄明白,光ping通还不够,得做好Windows侧的调试配置,还要让Flutter能建立正确的远程连接。下面是一步步的解决步骤:
1. 先给Windows虚拟机开启开发者模式
这是基础中的基础,没开的话根本没法远程部署调试:
- 按Win+I打开设置,进入「更新和安全」→「开发者选项」
- 勾选「开发人员模式」,弹出确认框直接点确定就行。
2. 启用远程调试和设备门户
Flutter要识别远程Windows设备,依赖这两个服务:
- 还是在开发者选项里,找到「设备门户」板块,勾选「启用远程设备门户」,设置好用户名和密码(这个一定要记牢,后面连接会用到)。
- 另外,确保「远程调试」选项也开着——有些Windows版本里这个选项在「系统属性」的「远程」标签页里,找到「允许远程连接到这台计算机」并勾选。
3. 给Windows防火墙开绿灯
默认防火墙会挡住Flutter的连接请求,得把必要的端口放开:
- 打开「Windows Defender防火墙」,进入「高级设置」
- 新建一条入站规则:
- 允许TCP端口
50000-50010(这是Flutter远程调试常用的端口范围) - 或者更简单,直接允许「Visual Studio Remote Debugger」和「Windows Device Portal」这两个应用通过防火墙。
- 允许TCP端口
4. 回到Linux主机,让Flutter连接虚拟机
现在轮到主机这边操作了:
- 先确保Flutter是最新版,执行
flutter upgrade更新一下,避免版本兼容问题。 - 然后用
flutter connect命令连接到虚拟机的IP:
要是你之前设置设备门户时改了端口,就把flutter connect 192.168.43.173:5000050000换成你设置的那个。 - 执行命令后会提示输入刚才在Windows里设的用户名和密码,输完确认就行。
5. 验证设备是否被识别
最后执行flutter devices看看,正常情况下你的Windows虚拟机应该出现在列表里了。如果还是没显示,试试重启Flutter的后台服务:
flutter daemon --kill flutter devices
额外排查小技巧
- 确认双向网络都通:不仅Linux能ping通Windows,Windows也要能ping通Linux主机,不然连接可能有问题。
- 检查Flutter的Windows支持是否开启:执行
flutter config --enable-windows-desktop,要是之前没开的话得先启用。 - 要是还是不行,试试在Windows里手动启动远程调试器:打开「Visual Studio Installer」,确保安装了「Windows开发」工作负载里的「远程工具」组件,然后启动远程调试器,设置成允许任何计算机连接。
内容的提问来源于stack exchange,提问作者Sumit Kumar
相关产品推荐
相关产品推荐

