双网卡,特定网页走特定网卡,Windows:配置多网卡路由表

Windows:配置多网卡路由表(规则)

有时出差到中国移动研究院,既要连接到内网指定服务器工作,又希望能连接外网随时能查一些资料。

但是内网和外网不通的,如何配置笔记本能实现多网卡路由?

前置条件:

1.网线连接内网;(网线,交换机)
2.无线连接外网;(无线,WIFI)

怎么做?

1.没有插网线,没有连 WIFI 时,笔记本路由表:

查看路由表执行:route print(或者 route print -4)
在这里插入图片描述
重点看 IPv4 路由表。

2.插入连接内网网线,笔记本路由表:

在这里插入图片描述
连接插入网线,无需其他操作,系统自动添加默认路由(0.0.0.0)。

此时测试内网,已经可以通信:

在这里插入图片描述
在进行下一步之前,请记住,内网的网关(下一跳网络地址)是 192.168.25.1。

3.保持内网网线连接,同时连接外网 WIFI,笔记本路由表:
在这里插入图片描述

发现新增默认路由规则:0.0.0.0 到 192.168.43.1 的映射。

我们可以知道:外网的网关是 192.168.43.1。

4.执行命令,修改路由规则:

以管理员权限运行 cmd 可执行程序(C:\Windows\System32\cmd),执行:

1)
命令:route delete 0.0.0.0
作用:将默认路由规则清空。

2)
命令:route add 0.0.0.0 mask 0.0.0.0 192.168.43.1
作用:添加默认路由规则,指向外网网关。【访问外网】

3)
命令:route add 192.168.0.0 mask 255.255.0.0 192.168.25.1
作用:添加普通路由规则,指向内网网关。【访问内网】

注意:

我要访问的内网地址都是192.168.x.x,因此我的子网掩码是 255.255.0.0。

假如访问的内网地址都是192.168.6.x,因此我的子网掩码是255.255.255.0。【当然,也可以选其他的子网掩码达到相同效果】

5.测试:

在这里插入图片描述

此时路由表为:

在这里插入图片描述
配置完毕!

如果配置中有问题或者想了解原理可以继续向下看。


为什么?

路由表通常形如:

目的网络地址(D) 子网掩码(M) 下一跳(N)
0.0.0.0 0.0.0.0 192.168.43.1
192.168.0.0 255.255.0.0 192.168.25.1
…… …… ……

IP 包如何路由(路由器转发分组)?

1)从收到的数据报的首部提取目的 IP 地址 D1;

2)先判断是否为直接交付。对路由器直接相连的网络逐个进行检查:用各网络的子网掩码(M)和 D1 逐位相“与”,看结果是否和相应的网络地址(D)匹配。若匹配,则把分组进行直接交付(当然还需要把 D1 转换成物理地址,把数据报封装成帧发送出去),转发任务结束。否则就是间接交付,执行3);

3)若路由表中有目的地址为 D1 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器(N);否则,执行4);

4)对路由表中的每一行(目的网络地址,子网掩码,下一跳地址),用其中的子网掩码(M)和 D1 逐位相“与”,其结果为 D2。若 D2 与该行的目的网络地址(D)匹配,则把数据报传送给该行指明的下一跳路由器(N);否则,执行5);

5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行6);

6)转发分组出错。

(来源:计算机网络第六版 谢希仁)

重点:4),对应于我们添加内网网关 192.168.25.1,普通路由;5),对应于我们添加外网网关,默认路由。


查看网关的方法

打开控制面板(WIN+R,control),控制面板\网络和 Internet\网络连接:
在这里插入图片描述
右键目标网络,点击“状态”:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


多网卡配置

配置双网卡和多网卡没什么本质区别。

网络连接方式可以是:

1.网线网口连接;
2.USB共享网络;
3.蓝牙共享网络;
4.WIFI共享网络;

配置双网卡则需要有两个网络连接,配置多网卡则需要有多个网络连接。

连接网络后添加对应路由规则即可。


其他

通过IP层如何发数据给 192.168.243.224 主机?

1.本机指定目的主机的IP地址:192.168.224.243,以及传输数据;

2.本机 IP 协议栈封装 IP 包,将传输数据填充入 IP 包的数据部分,计算下一跳地址;

3.目的地址是 192.168.243.224,与子网掩码 255.255.0.0 做逻辑与运算,得出的地址是 192.168.0.0,与路由表的目的网络地址相同,符合路由规则,则本机将 IP 包发往下一跳 192.168.25.1 ;

4.由本机数据链路层做 ARP 地址解析,获取 192.168.25.1 的 MAC 地址;

5.将本机 IP 层交付的 IP 包封装成帧(数据部分),目的 MAC 填入 192.168.25.1 的 MAC 地址,发送。

链接

1.https://blog.csdn.net/tao546377318/article/details/52485627

2.https://www.cnblogs.com/lcword/p/8149668.html

Windows路由表详解

路由表是Windows的TCP/IP协议栈的一个重要的部分。但是,路由表不是Windows操作系统向普通用户显示的东西。如果你要看到这个路由表,你必须要打开一个命令提示符对话框,然后输入“ROUTE PRINT”命令。
路由器的工作是协调一个网络与另一个网络之间的通信。因此,一台路由器包含多个网卡,每一个网卡连接到不同的网段。当用户把一个数据包发送到本机以外的一个不同的网段时,这个数据包将被发送到路由器。路由器将决定这个数据包应该转发给哪一个网段。如果这台路由器连接两个网段或者十几个网段也没有关系。决策的过程都是一样的,而且决策都是根据路由表做出的。
一、 windows 路由表条目解释
1. 使用 ipconfig /all 查看网卡信息
2. 使用 route print 命令查看路由表信息,如下图:
3. 路由表信息解释
1 )名词解释及作用:
Active Routes :活动的路由
Network destination : 是网络目的地址。列出了路由器连接的所有的网段。
Netmask: 网络掩码列提供这个网段本身的子网掩码,而不是连接到这个网段的网卡的子网掩码。这基本上能够让路由器确定目的网络的地址类。
Gateway: 网关。一旦路由器确定它要把这个数据包转发到哪一个目的网络,路由器就要查看网关列表。网关表告诉路由器这个数据包应该转发到哪一个IP地址才能达到目的网络。
Interface: 接口列告诉路由器哪一个网卡连接到了合适的目的网络。从技术上说,接口列仅告诉路由器分配给网卡的IP地址。那个网卡把路由器连接到目的网络。然而,路由器很聪明,知道这个地址绑定到哪一个物理网卡。
Metric: 跳数,跳数用于指出路由的成本,通常情况下代表到达目标地址所需要经过的跳跃数量,一个跳数代表经过一个路由器。跳数越低,代表路由成本越低,优先级越高。
2)第一条信息:缺省路由
   缺省路由:意思就是说,当一个数据包的目的网段不在你的路由记录中,那么,你的路由器该把那个数据包发送到那里!缺省路由的网关是由你的连接上的default gateway决定的
该路由记录的意思是:当我接收到一个数据包的目的网段不在我的路由记录中,我会将该数据包通过192.168.99.8这个接口发送到192.168.99.1这个地址,这个地址是下一个路由器的一个接口,这样这个数据包就可以交付给下一个路由器处理,与我无关。该路由记录的线路质量 1
3 )第二条路由信息:本地环路
   本地环路:127.0.0.0这个网段内所有地址都指向自己机器,如果收到这样一个数据,应该发向哪里 该路由记录的线路质量 1
4 )第三条路由信息:直连网段的路由记录
     直联网段的路由记录:当路由器收到发往直联网段的数据包时该如何处理,这种情况,路由记录的interface和gateway是同一个。
  当系统接收到一个发往目的网段 192.168.99.0/24 的数据包时,系统会将该数据包通过 192.168.99.8 这个接口发送出去,因为这个端口直接连接着 192.168.99.0 这个网段,该路由记录的线路质量 20
5 )第四条路由信息:本地主机路由
    当系统接收到一个目标 ip 地址为本地网卡 ip 地址的数据包时,系统会将该数据包收下。
  本地主机路由:当路由器收到发送给自己的数据包时将如何处理
当我接收到一个数据包的目的网段是192.168.99.8时,系统会将该数据包收下,因为这个数据包是发送给系统自己的,该路由记录的线路质量 20
6 )第五条路由信息:本地广播路由
    当系统接收到一个发给直连网段的本地广播数据包时,系统会将该数据包从 192.168.99.8 这个接口以广播的形式发送出去。
7 )第六条路由信息:组播路由
    当系统接收到一个组播数据包时,系统会将该数据包从 192.168.99.8 这个接口以组播的形式发送出去。
8 )第七条路由信息:广播路由
    在系统接收到一个绝对广播数据包时,系统会将该数据包通过 192.168.99.8 这个接口发送出去。
9 ) Default Gateway (缺省网关)
二、 windows 路由表操作
    windows 路由表的设置主要通过 route 命令, ROUTE 命令格式如下:
ROUTE [-f] [-p] [command [destination] [MASK netmask] [gateway] [METRIC metric] [IF interface]
其中 – f 参数用于清除路由表, -p 参数用于永久保留某条路由(即在系统重启时不会丢失路由)。
Command 主要有 PRINT (打印)、 ADD (添加)、 DELETE (删除)、 CHANGE (修改)共 4 个命令。
Destination 代表所要达到的目标 IP 地址。
MASK 是子网掩码的关键字。 Netmask 代表具体的子网掩码,如果不加说明,默认是 255.255.255.255 (单机 IP 地址)。如果代表全部出口子网掩码可用 0.0.0.0 。
Gateway 代表出口网关。
其他 interface 和 metric 分别代表特殊路由的接口数目和到达目标地址的跳数,一般默认。
三、双网卡路由配置实例
某公司有两个网络:一个是办公网络 192.168.99.0/24 ,网关为: 192.168.99.1 ;一个是用来访问 internet 的商务网络 192.168.201.0/24 ,网关为: 192.168.201.1 。现在有一台电脑使用两块网卡,一块连接公司办公网络, IP 地址为 192.168.99.8 ;另一块连接商务网络, IP 地址为 192.168.201.254 。现在需要这台电脑既能访问办公网络,也能访问商务网络。
1. 我们可以使用 ipconfig /all 命令来查看该电脑的网卡设置情况,如下图:
2. 我们再用 route print 命令来查看该电脑的路由表信息,该路由表跟上面介绍的路由表是一样的,只是增加了几条网卡 2 的路由信息,如下图所示:
3. 我们可以使用 ping 命令来测试网络连接情况,如下图: ping 内网是通的,但是 ping 外网不通。也就是说现在该电脑只能访问办公网络,但是无法访问商务网络。
4. 由上面的路由表可以看到,系统有两条缺省路由,这也是造成不能同时访问两个网络的主要原因,要解决这个问题,我们就需要修改路由表。
首先使用 route delete 0.0.0.0 这条命令删除缺省路由;
然后手动设置两条路由,如下图所示:
5. 我们再用 route print 来查看路由表信息,现在我们可以看到 Persistent Routes 下面多了两条静态固化路由,如下图所示:
6. 我们再使用 ping 来测试一下网络连接情况,如下图,办公网络和商务网络都可以 ping 通了。该电脑现在可以正常访问办公网络和商务网络了。
windows 路由表其实是比较简单的,熟悉 windows 路由表有利于排除网络故障。本文档是自己通过网上资料的整理和实践相结合整理的文档,仅供学习使用,若有不妥请告知。
ps:对于上述的配置办公网,本人认为没有必要进行配置路由表,对于同一网段的的IP可以不必经过路由功能。

关于双网卡电脑,特定网页走特定网卡的设置

双网卡有时候因为访问顺序原因导致不能访问某些特定网页,下面介绍一下我解决此类问题的方法

 

首先要知道换网卡顺序是否可以进

打开网络共享中心,在左侧中间  ,点入后,按一下alt建,按高级,再按高级设置 ,在第一个页面调整顺序

 

 

若是换网卡顺序都不能进去,请百度或必应错误寻找解决办法

下面主要介绍换网卡就可以进去的方法

 

 

1、  可用网卡进去后

打开CMD,输入“ping+空格+域名”(域名为中间那个,如www.baidu.com,域名为baidu)

Ping完后会出现IP地址,以及TTL(跃点),记下来

 

2、   查看添加路由

在CMD中,输入“route print”可显示本机路由表,查看永久路由中是否两张网卡的网关都存在。(以内网和外网为例:两个都存在可能会存在冲突,这时候我们就要删除内网网关)

 

删除流程:先在注册表中将对应的的永久路由条目删掉
永久路由条目位置:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes
删除后,重起电脑,完毕后来,再使用route delete 0.0.0.0 mask 0.0.0.0 192.XXX.XX.XX(永久路由的网关)

添加永久路由:知道ip和跃点后,我们可以添加永久路由来解决域名没有解析的问题。输入: route add -p x.x.x.x mask x.x.x.x  z.z.z.z metric 1

                                                                                                                                                                                  (外网IP)(子网掩码如255.255)(网卡网关永久路由表看到那个如10.0)

(metric 1 数字代表跃点数,上面有说如何查)

 

 

特别说明:添加路由后,登录此网站可能需要直接输入其ip地址,不能用域名登录

 

 

 

 
  1. import java.net.InetAddress;
  2. import java.net.NetworkInterface;
  3. import java.net.SocketException;
  4. import java.util.Enumeration;
  5.  
  6. /**
  7. *
  8. * @anthor leo
  9. * @date 2016年6月27日下午12:40:14
  10. * @description
  11. *
  12. **/
  13.  
  14. public class Main {
  15.  
  16. public static void main(String[] args) throws SocketException {
  17. System.out.println(Main.getRealIp());
  18. }
  19.  
  20. public static String getRealIp() throws SocketException {
  21. String localip = null;// 本地IP,如果没有配置外网IP则返回它
  22. String netip = null;// 外网IP
  23.  
  24. Enumeration<NetworkInterface> netInterfaces = NetworkInterface.getNetworkInterfaces();
  25. InetAddress ip = null;
  26. boolean finded = false;// 是否找到外网IP
  27. while (netInterfaces.hasMoreElements() && !finded) {
  28. NetworkInterface ni = netInterfaces.nextElement();
  29. Enumeration<InetAddress> address = ni.getInetAddresses();
  30. while (address.hasMoreElements()) {
  31. ip = address.nextElement();
  32. if (!ip.isSiteLocalAddress() && !ip.isLoopbackAddress() && ip.getHostAddress().indexOf(":") == -1) {// 外网IP
  33. netip = ip.getHostAddress();
  34. finded = true;
  35. break;
  36. } else if (ip.isSiteLocalAddress() && !ip.isLoopbackAddress()
  37. && ip.getHostAddress().indexOf(":") == -1) {// 内网IP
  38. localip = ip.getHostAddress();
  39. }
  40. }
  41. }
  42.  
  43. if (netip != null && !"".equals(netip)) {
  44. return netip;
  45. } else {
  46. return localip;
  47. }
  48. }
  49. }
 
posted @ 2020-11-11 10:39  CharyGao  阅读(23194)  评论(1编辑  收藏  举报