客户机接入终极方案
type
status
date
slug
summary
tags
category
icon
password
最近开始在家办公了,家里桌子很小,如果还是两台电脑中间插根网线的话,桌子会非常乱。
而且上一个方案有很多小问题:
- Openwrt会经常让直通的USB网卡进入DOWN的状态
- USB网卡有时候直接断开连接,表现是在宿主机和虚拟机都找不到这个设备
- 宿主机Windows偶尔会被客户组策略强制重启
问题1可以通过写脚本自动检查来重启网络解决,问题2只能靠物理重新插拔,问题3则无解。
设计方案
首先解决问题3,因为所有问题2可以靠重启解决😂。所以需要一个KVM,廉价解决方案是PiKVM,垃圾佬解决方案是玩客云。
用到KVM之后,发现了Linux USB Gadget这个玩意儿,可以模拟网卡。便有了一个大胆的想法,在Bridge这个设备上,模拟出两个USB设备,一个是键鼠,给宿主机Windows使用。一个是USB网卡,直通给虚拟机。
然后在Bridge上,将这个USB网卡与Bridge接入的虚拟机网络桥接。然后在路由器上直接将客户网段的网关指向VM的IP。
这样问题2的方案也能快速解决,只需要在Bridge上重置USB Gadget,就能起到物理重新插拔的效果。
遇到的问题
- Linux USB Gadget模拟的是一个多功能设备,并不是多个物理设备,没办法只选择其中一个设备直通,只能全部直通或者不直通。
- Bridge是要桥接的是一个无线网卡,无线网卡桥接有很多限制,也很复杂(反正就是一通操作,没搞成
最终方案
改动如下:
- OpenWRT换成Linux,直接用iptables,更易于排查问题,而且驱动问题好解决
- 配上了一个USB Wi-Fi Adapter,直通给VM用来做backup
- 网关改成Bridge,由Bridge来决定是走USB Net(192.168.168.101)还是走Wi-Fi(192.168.2.101)
- 分成两个USB Gadget,日常模拟成网卡,需要维护的时候,切换成键鼠模式,使用不同的VID/PID,避免键鼠被直通,导致Windows只能看不能操作。
Bridge的网卡配置
VM的网卡配置
当Wi-Fi断开时,在Mac上
当USB断开时,
当两条链路都通时
维护模式
关闭USB网卡模拟,开启KVMD,在Windows进行维护。
终于,现在可以把客户机和Bridge(实际上是一台Rock 5C Lite),塞在家里任何一个角落,只要其他设备连上了家里局域网,就能正常访问内网无阻。
Loading...