一、问题背景
因为有一个工作站在内网中,但是没有办法联网(校园网账户有限)。
虽然工作站没有联网,但是我仍然可以通过局域网远程控制工作站,使其访问校园网验证页面实现上网。
当给工作站安装软件或依赖项时,需要用自己校园网账户登录验证,而这时候自己的windows电脑上就没有网络了(校园网账户只能同时登录一台设备)。
考虑到我有一个无线网卡,插在台式机上后,相当于一个机器有两个网卡,一个有线网卡连接的是有线以太网、一个无线网卡可以连接WiFi。
如果不做特殊的配置,两个网卡同时连接网络,必定会导致冲突,最后上网可能反而会变慢。
二、解决办法
假设网卡A是无线网卡,网卡B是有线网卡。
我们将有线网卡的ipv4网络跃点设置为100。
使用路由表打印命令,显示网卡的IP信息、网关信息等等。(XX表示屏蔽隐私信息)
C:\WINDOWS\system32>route print
===========================================================================
接口列表
13...xx xx xx 27 ac 51 ......Intel(R) Ethernet Connection (11) I219-LM
4...xx xx xx 79 8d 88 ......Microsoft Wi-Fi Direct Virtual Adapter
8...xx xx xx 79 8d 88 ......Microsoft Wi-Fi Direct Virtual Adapter #2
5...xx xx xx 79 8d 88 ......Realtek 8832AU Wireless LAN WiFi 6 USB NIC
1...........................Software Loopback Interface 1
===========================================================================
IPv4 路由表
===========================================================================
活动路由:
网络目标 网络掩码 网关 接口 跃点数
0.0.0.0 0.0.0.0 172.20.xxx.1 172.20.xxx.223 356
0.0.0.0 0.0.0.0 192.168.58.239 192.168.58.124 50
127.0.0.0 255.0.0.0 在链路上 127.0.0.1 331
127.0.0.1 255.255.255.255 在链路上 127.0.0.1 331
127.255.255.255 255.255.255.255 在链路上 127.0.0.1 331
172.20.xxx.0 255.255.248.0 在链路上 172.20.xxx.223 356
172.20.xxx.223 255.255.255.255 在链路上 172.20.xxx.223 356
172.20.xxx.255 255.255.255.255 在链路上 172.20.xxx.223 356
192.168.58.0 255.255.255.0 在链路上 192.168.58.124 306
192.168.58.124 255.255.255.255 在链路上 192.168.58.124 306
192.168.58.255 255.255.255.255 在链路上 192.168.58.124 306
192.168.137.0 255.255.255.0 在链路上 192.168.137.1 281
192.168.137.1 255.255.255.255 在链路上 192.168.137.1 281
我们可以发现网卡A的IP是192.168.58.124,网关是192.168.58.239。
而网卡B的IP是172.20.xxx.223,网关是172.20.xxx.1。
而工作站的IP是172.20.xxx.2。
现在我们为了让有线网卡走内网连接工作站,可以在管理员身份的CMD窗口中执行下面的命令。
route -p add 172.20.xxx.2 mask 255.255.255.255 172.20.xxx.1
-p表示永久路由,重启机器后仍然存在,除非重启显卡(禁用后再启用)。
add表示添加路由。
mask尽量设置为32位,这样的鲁棒性最好,最稳定。
命令执行后,我在工作站上连接校园网,然后自己windows电脑上连接一个WiFi(手机热点),便可以实现双电脑机器联网。
三、反思
当我执行route -p add 172.20.xxx.2 mask 255.255.255.255 172.20.xxx.1
时,如果将mask设置为24位,就会导致无法连接到内网。
这个问题我愣是没想明白为啥。因为我在网上查询的时候,发现路由顺序依赖子网掩码数量和目标IP匹配情况。
例如某一条路由可以匹配到目标IP 123.123.123.123,显然默认路由0.0.0.0的子网掩码任何IP都能匹配,而另一条路由匹配到这个目标IP的同时,子网掩码为255.0.0.0。
由于后者有8位子网掩码,那么网络优先走后面这个路径。
欢迎大佬答疑解惑。