如何将Windows主机所有流量通过VirtualBox中的OpenWrt虚拟机路由器转发
如何将Windows主机所有流量通过VirtualBox中的OpenWrt虚拟机路由器转发
嘿,我之前也折腾过一模一样的需求,其实配置起来没那么复杂,咱们一步步来搞定:
第一步:VirtualBox虚拟机网络设置
首先得给你的OpenWrt虚拟机配置两个网卡,确保它既能连外网,又能和Windows主机通信:
- 第一个网卡(比如eth0)设置为桥接模式,选择你Windows主机当前用来上网的物理网卡(比如WiFi或者有线网卡),这样OpenWrt就能通过这个网卡获取外网连接。
- 第二个网卡(比如eth1)设置为仅主机(Host-Only)适配器,这个网卡只用来在Windows主机和OpenWrt虚拟机之间建立内部通信,不用连外网。
第二步:OpenWrt虚拟机内部配置
启动OpenWrt后,需要做几个关键配置让它能当路由器用:
- 配置Host-Only接口的静态IP
登录OpenWrt的Web管理界面(或者用SSH),找到网络接口设置,给eth1(Host-Only网卡)设置一个静态IP,比如192.168.56.1/24,这个IP就是后面Windows主机要用到的网关地址。 - 开启DHCP服务(可选但推荐)
给这个Host-Only接口开启DHCP服务,设置地址池范围比如192.168.56.100-192.168.56.200,这样Windows主机能自动获取IP和网关,不用手动配置。 - 开启IP转发
这是路由器的核心功能,必须开启:- 编辑
/etc/sysctl.conf文件,找到net.ipv4.ip_forward=1这一行,把前面的注释符号(#)去掉。 - 执行命令
sysctl -p让配置立即生效。
- 编辑
- 配置防火墙转发规则
在OpenWrt的防火墙设置里,确保把Host-Only接口加入到lan区域,并且允许lan区域到wan区域的流量转发(默认OpenWrt的lan到wan是允许的,但最好确认一下)。
第三步:Windows主机网络设置
现在要让Windows把所有流量都导向OpenWrt虚拟机:
- 如果之前开启了OpenWrt的DHCP服务,只需要把Windows的Host-Only网卡设置为自动获取IP地址,它会自动拿到网关为
192.168.56.1的配置。 - 如果手动配置的话:
- 打开Windows的“网络和共享中心”,找到Host-Only对应的网卡(通常叫VirtualBox Host-Only Ethernet Adapter)。
- 设置IP地址为
192.168.56.2/24,子网掩码255.255.255.0,默认网关填192.168.56.1。 - DNS服务器可以填
192.168.56.1(让OpenWrt做DNS解析),或者公共DNS比如1.1.1.1、8.8.8.8。
- 最后,记得禁用Windows主机上其他可能的网络连接(比如原来的WiFi或有线网卡),避免流量绕过OpenWrt走其他路由。
第四步:验证配置是否生效
配置完后,咱们确认一下流量是不是真的走OpenWrt:
- 打开Windows的命令提示符(cmd),执行
tracert 8.8.8.8,看第一跳的IP是不是192.168.56.1(OpenWrt的Host-Only IP)。 - 访问IP查询网站,看显示的IP是不是OpenWrt虚拟机的外网IP(如果OpenWrt已经挂了VPN,这里应该显示VPN的IP)。
如果遇到问题,先检查OpenWrt能不能正常上网,再检查Windows和OpenWrt之间能不能ping通,最后看防火墙规则有没有限制流量转发。
备注:内容来源于stack exchange,提问作者Huy nguyen kim nhat




