2018-10-05 · Tools

Windows 双网卡路由设置

在公司一般会遇到双网卡进行路由分流的情况,本文记录在 windows 环境下的路由设置。

场景也是很简单的情况:

首先查看公司的网关, 通过命令 ipconfig -all 得知,默认网关为 135.251.99.1
分析场景知道,公司的内网网段 135 和 172 都需要是用默认网关去访问。而 Internet 需要使用 192.168.0.1 去访问。

windows-route

解决方案是 通过静态路由来实现同时访问内外网。配置静态路由就需要 route 命令。

所以先介绍下 route :

使用帮助命令查看 route 的功能。

C:\Windows\system32>route /?

操作网络路由表。


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

  -f           清除所有网关项的路由表。如果与某个
               命令结合使用,在运行该命令前,
               应清除路由表。

  -p           与 ADD 命令结合使用时,将路由设置为
               在系统引导期间保持不变。默认情况下,重新启动系统时,
               不保存路由。忽略所有其他命令,
               这始终会影响相应的永久路由。

  -4           强制使用 IPv4。

  -6           强制使用 IPv6。

  command      其中之一:
                 PRINT     打印路由
                 ADD       添加路由
                 DELETE    删除路由
                 CHANGE    修改现有路由
  destination  指定主机。
  MASK         指定下一个参数为“netmask”值。
  netmask      指定此路由项的子网掩码值。
               如果未指定,其默认设置为 255.255.255.255。
  gateway      指定网关。
  interface    指定路由的接口号码。
  METRIC       指定跃点数,例如目标的成本。

用于目标的所有符号名都可以在网络数据库
文件 NETWORKS 中进行查找。用于网关的符号名称都可以在主机名称
数据库文件 HOSTS 中进行查找。

如果命令为 PRINT 或 DELETE。目标或网关可以为通配符,
(通配符指定为星号“*”),否则可能会忽略网关参数。

如果 Dest 包含一个 * 或 ?,则会将其视为 Shell 模式,并且只
打印匹配目标路由。“*”匹配任意字符串,
而“?”匹配任意一个字符。示例: 157.*.1、157.*、127.*、*224*。

只有在 PRINT 命令中才允许模式匹配。
诊断信息注释:
    无效的 MASK 产生错误,即当 (DEST & MASK) != DEST 时。
    示例: > route ADD 157.0.0.0 MASK 155.0.0.0 157.55.80.1 IF 1
             路由添加失败: 指定的掩码参数无效。
             (Destination & Mask) != Destination。

示例:

    > route PRINT
    > route PRINT -4
    > route PRINT -6
    > route PRINT 157*          .... 只打印那些匹配  157* 的项

    > route ADD 157.0.0.0 MASK 255.0.0.0  157.55.80.1 METRIC 3 IF 2
             destination^      ^mask      ^gateway     metric^    ^
                                                         Interface^
      如果未给出 IF,它将尝试查找给定网关的最佳
      接口。
    > route ADD 3ffe::/32 3ffe::1

    > route CHANGE 157.0.0.0 MASK 255.0.0.0 157.55.80.5 METRIC 2 IF 2

      CHANGE 只用于修改网关和/或跃点数。

    > route DELETE 157.0.0.0
    > route DELETE 3ffe::/32

需要注意的是使用 route change 命令时无法改变 destination 值。

对照路由表熟悉 route 命令

C:\Windows\system32>route print -4
===========================================================================
接口列表
 21...ac 2b 6e 40 6d 58 ......Microsoft Wi-Fi Direct Virtual Adapter
  9...80 fa 5b 33 71 c4 ......Realtek PCIe GBE Family Controller
 10...00 50 56 c0 00 01 ......VMware Virtual Ethernet Adapter for VMnet1
 20...00 50 56 c0 00 08 ......VMware Virtual Ethernet Adapter for VMnet8
 19...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #5
 22...ac 2b 6e 40 6d 5b ......Bluetooth Device (Personal Area Network)
  5...ac 2b 6e 40 6d 57 ......Intel(R) Dual Band Wireless-AC 3165
  1...........................Software Loopback Interface 1
 23...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter
  7...00 00 00 00 00 00 00 e0 Teredo Tunneling Pseudo-Interface
  4...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #2
===========================================================================

IPv4 路由表
===========================================================================
活动路由:
网络目标        网络掩码          网关       接口   跃点数
          0.0.0.0          0.0.0.0     135.251.99.1    135.251.99.93     35
        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
        135.0.0.0        255.0.0.0     135.251.99.1    135.251.99.93     36
     135.251.99.0    255.255.255.0            在链路上     135.251.99.93    291
    135.251.99.93  255.255.255.255            在链路上     135.251.99.93    291
   135.251.99.255  255.255.255.255            在链路上     135.251.99.93    291
        172.0.0.0        255.0.0.0     135.251.99.1    135.251.99.93     36
    192.168.187.0    255.255.255.0            在链路上     192.168.187.1    291
    192.168.187.1  255.255.255.255            在链路上     192.168.187.1    291
  192.168.187.255  255.255.255.255            在链路上     192.168.187.1    291
    192.168.244.0    255.255.255.0            在链路上     192.168.244.1    291
    192.168.244.1  255.255.255.255            在链路上     192.168.244.1    291
  192.168.244.255  255.255.255.255            在链路上     192.168.244.1    291
        224.0.0.0        240.0.0.0            在链路上         127.0.0.1    331
        224.0.0.0        240.0.0.0            在链路上     192.168.244.1    291
        224.0.0.0        240.0.0.0            在链路上     192.168.187.1    291
        224.0.0.0        240.0.0.0            在链路上     135.251.99.93    291
  255.255.255.255  255.255.255.255            在链路上         127.0.0.1    331
  255.255.255.255  255.255.255.255            在链路上     192.168.244.1    291
  255.255.255.255  255.255.255.255            在链路上     192.168.187.1    291
  255.255.255.255  255.255.255.255            在链路上     135.251.99.93    291
===========================================================================
永久路由:
  网络地址          网络掩码  网关地址  跃点数
        135.0.0.0        255.0.0.0     135.251.99.1       1
        172.0.0.0        255.0.0.0     135.251.99.1       1
          0.0.0.0          0.0.0.0      192.168.0.0       1
===========================================================================

多网卡路由的设置

删除默认路由

route delete 0.0.0.0 mask 0.0.0.0 135.251.99.1

指定网段,添加内网路由(有线)

route add -p 135.0.0.0 mask 255.0.0.0 135.251.99.1

route add -p 172.0.0.0 mask 255.0.0.0 135.251.99.1

添加剩余网段走外网路由(无线)

route add -p 0.0.0.0 mask 0.0.0.0 192.168.0.0

注意:

部分电脑在重启后需要再次执行步骤一删除默认路由。

如果你的路由表实在是太乱(在做前面配置时,配置错乱,不知道怎么修复的情况下),可以执行 route -f 后重启再按照步骤来走。