在公司需要查阅资料和安装npm包,所以研究了几年虚拟机安装软路由进行代理访问的方法,期间得到很多虚拟化和网络方面的知识,记录一下几个比较经典的问题
本文不是教程,而是笔记
NAT网卡被强制指定IP
hyper-v 的lan(内部交换机) 会自动将宿主机的接口设置成固定IP(该交换机网端),代替DHCP
每次更改为DHCP后可以拿到软路由分配的IP,但是每次重启,又会变回手动指定IP,所以开机无网络。
可以在powershell里面用这个命令创建虚拟交换机来解决
1 | New-VMSwitch -SwitchName "Lan-Switch" -SwitchType Internal |
这样创建的网卡,不会被hyper-v强制改为手动指定IP
旁路由DHCP
不开DHCP
宿主机需要手动指定IP信息将网关指向软路由,手动指定的IP可能会和局域网冲突
开DHCP
总有一些人的电脑或者手机无法上网,查看网络信息后发现DHCP到软路由的网关设置也生效了
但是就是不知道为什么无法上网
好像是DNS问题,估计是安全软件导致的?
因为每次开启了就导致一堆人无法上网,没法好好排查问题
真实路由的问题
- 和同事不在同一网段,即使在主路由设置路由表,也没有网络发现,除非还要更改主路由的子网掩码,特别麻烦
我的最终方案
- 版本1
软路由不开DHCP,宿主机(也就是我的电脑)手动设置网关为软路由
- 版本2
软路由开启socks5代理,宿主机浏览器使用SwitchyOmega将流量切换到代理
这样做导致其他程序没有走代理,但是也正因为如此,所以zerotier之类的才可以正常P2P