双网卡,特定网页走特定网卡,Windows:配置多网卡路由表 |
您所在的位置:网站首页 › 网卡连接设置方法 › 双网卡,特定网页走特定网卡,Windows:配置多网卡路由表 |
Windows:配置多网卡路由表(规则)
有时出差到中国移动研究院,既要连接到内网指定服务器工作,又希望能连接外网随时能查一些资料。 但是内网和外网不通的,如何配置笔记本能实现多网卡路由? 前置条件: 1.网线连接内网;(网线,交换机)2.无线连接外网;(无线,WIFI) 怎么做?1.没有插网线,没有连 WIFI 时,笔记本路由表: 查看路由表执行:route print(或者 route print -4) 2.插入连接内网网线,笔记本路由表:
此时测试内网,已经可以通信:
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 查看网卡信息双网卡有时候因为访问顺序原因导致不能访问某些特定网页,下面介绍一下我解决此类问题的方法 首先要知道换网卡顺序是否可以进 打开网络共享中心,在左侧中间
若是换网卡顺序都不能进去,请百度或必应错误寻找解决办法 下面主要介绍换网卡就可以进去的方法
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地址,不能用域名登录
import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.Enumeration; /** * * @anthor leo * @date 2016年6月27日下午12:40:14 * @description * **/ public class Main { public static void main(String[] args) throws SocketException { System.out.println(Main.getRealIp()); } public static String getRealIp() throws SocketException { String localip = null;// 本地IP,如果没有配置外网IP则返回它 String netip = null;// 外网IP Enumeration netInterfaces = NetworkInterface.getNetworkInterfaces(); InetAddress ip = null; boolean finded = false;// 是否找到外网IP while (netInterfaces.hasMoreElements() && !finded) { NetworkInterface ni = netInterfaces.nextElement(); Enumeration address = ni.getInetAddresses(); while (address.hasMoreElements()) { ip = address.nextElement(); if (!ip.isSiteLocalAddress() && !ip.isLoopbackAddress() && ip.getHostAddress().indexOf(":") == -1) {// 外网IP netip = ip.getHostAddress(); finded = true; break; } else if (ip.isSiteLocalAddress() && !ip.isLoopbackAddress() && ip.getHostAddress().indexOf(":") == -1) {// 内网IP localip = ip.getHostAddress(); } } } if (netip != null && !"".equals(netip)) { return netip; } else { return localip; } } } Java获取本机公网ip-CSDN博客 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |