需求

我需要访问内网的几个固定IP。例如 10.76.55.43172.89.45.2。等等,但是内网链接好后,无法访问互联网,不利于开发的效率提升。故此,现需求如下:

通过网线走内网访问固定IP的服务。

通过Wi-Fi走外网访问互联网。

思路

其实思路很明确,只要你访问内网服务,就直接路由到内网即可,其余的一律走外网。所以,我们只要简单的改一下路由表配置就行。

1.断开网线链接

当然,你可以物理意义上的把网线给拔掉。或者,直接禁用网络。

2.链接WiFi找网关

首先,点一下Wi-Fi链接,我们需要找到你WiFi的网关。链接好后,输入

1
ipconfig

找到你WiFi那列,找到网关(gateway),记录下来这个地址,例如192.168.8.1

image-20221101143902633

⚠️下面也是基于这个网关而写的,你需要换成你自己的

输入

1
route print -4 

查看接口列表,找到你的有线网卡和无线网卡的接口数字,例如我的如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
=========================================================================== 

16...xx xx xx xx xx xx ......Realtek PCIe GbE Family Controller <---------有线网卡
11...xx xx xx xx xx xx ......Microsoft Wi-Fi Direct Virtual Adapter
17...xx xx xx xx xx xx ......Microsoft Wi-Fi Direct Virtual Adapter #2

9...xx xx xx xx xx xx ......Intel(R) Dual Band Wireless-AC 3168 <---------无线网卡

1...........................Software Loopback Interface 1 ===========================================================================
IPv4 路由表
===========================================================================
活动路由:
网络目标 网络掩码 网关 接口 跃点数
0.0.0.0 0.0.0.0 10.211.55.1 10.211.55.6 15
10.211.55.0 255.255.255.0 在链路上 10.211.55.6 271
10.211.55.6 255.255.255.255 在链路上 10.211.55.6 271
10.211.55.255 255.255.255.255 在链路上 10.211.55.6 271
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
224.0.0.0 240.0.0.0 在链路上 127.0.0.1 331
224.0.0.0 240.0.0.0 在链路上 10.211.55.6 271
255.255.255.255 255.255.255.255 在链路上 127.0.0.1 331
255.255.255.255 255.255.255.255 在链路上 10.211.55.6 271
===========================================================================

从上面可以看出,有线网卡的接口id为 16,无线网卡为 9.

⚠️下面也是基于这个ID而写的,你需要换成你自己的

3.重置路由表

终端输入

1
route delete 0.0.0.0

删除路由转发。

4.添加外网路由

在终端输入如下命令:

1
route -p add 0.0.0.0 mask 0.0.0.0 192.168.8.1 metric 1 IF 9

这里解释一下各个含义:

  • route -p:永久有效,这样就不会随着重启系统而重置路由

  • metric 1:设置跳跃数为1的高优先级。metric数字越小,优先级越高。

  • IF 9:配置接口ID为 Wi-Fi

  • add 0.0.0.0 mask 0.0.0.0 192.168.8.1 :设置192.168.8.1为我的外网网关,子网掩码为*.*.*.*,代理的IP地址也为*.*.*.*,这这里的*为通配符,表示所有,在命令中直接用0 代替。

5.添加内网路由

在终端输入一下命令:

1
route -p add 10.0.0.0 mask 255.0.0.0 10.89.100.1 metric 2 IF 16

这里再次解释一下各个含义:

  • route -p:同上。

  • metric 2:设置跳跃数为2。

  • IF 9:配置接口ID为 网线

  • add 10.0.0.0 mask 255.0.0.0 10.89.100.1 :设置10.89.100.1 为我的内网网关,子网掩码为255.*.*.*,代理的IP地址也为10.*.*.*,开头的所有IP。

6.设置链接网线的静态IP(可选的步骤)

如果你的内网是专门给你分配了静态IP,你需要设置电脑在内网的固定IP。例如,内网给我分配了10.89.100.128为我的专属IP,并且设定了专门的DNS服务器(10.101.1.3)解析。

直接在终端输入:

1
2
3
4
5
6
netsh interface ip set address "以太网" source=static addr=10.89.100.128 mask=255.255.255.0 gateway=10.89.100.1 



netsh interface ip set dns name="以太网" static 10.101.1.3