Windows路由表操作

Windows路由表操作

当电脑有多个网卡连接不同网段时,根据系统路由表设置,可能会出现无法访问某一个网段,或者无法上网的情况。例如电脑上两个网卡分别连接互联网以及公司内网时,可能会碰到这种情况。

电脑网络数据的流量由系统的路由表来控制,碰到这种情况是可以查看和修改系统的路由表来解决。Windows环境下管理系统路由表的命令为route命令。

route命令的格式为:

ROUTE [-f] [-p] [command [destination] [MASK netmask] [gateway] [METRIC metric] [IF interface]

其中–f参数用于清除路由表,-p参数用于永久保留某条路由(即在系统重启时不会丢失路由)。

Command主要有PRINT(打印)、ADD(添加)、DELETE(删除)、CHANGE(修改)共4个命令。

查看路由表可用使用route print命令,例如:

其中每一条路由规则包含:
– 网络目标:网络数据的目的地,0表示不限
– 网络掩码:和网络目标一起组成网络目的地址的集合
– 网关:对应的网络目的地址所走的网关
– 接口:对应接口网卡的IP地址

路由表的第一条为缺省路由,其网络目标和网络掩码都为0.0.0.0,表示任意地址。只要后面没有能匹配上的路由规则都会使用缺省的路由。

如上面的路由表所示,其中有三条路由规则其网络目标和网络掩码都为0.0.0.0,其中192.168.20.x网段为内网,不能访问互联网。如果由于某种原因192.168.20.1的路由规则排在最前面作为缺省路由,则电脑将无法访问互联网。此时可以删除该路由,并为192.168.20.x网段专门增加一条路由规则。

# 删除192.168.20.1路由
route delete 0.0.0.0 mask 0.0.0.0 192.168.20.1

# 为192.168.20.x网段专门添加一条路由,使用-p参数使其成为永久路由
route add -p 192.168.20.0 mask 255.255.255.0 192.168.20.1

当网卡采样DHCP自动分配IP时,每次重启或者重新连接网络时都会为其自动产生一条0.0.0.0的路由规则,为了避免每次手动删除此0.0.0.0的路由规则,可将连接内部网的网卡设置为固定IP,并且不指定缺省的网关,这样就不会自动产生此路由规则。