Windows:配置多网卡路由表,WiFi和网线内外网不通策略

2023-05-16

怎么做?

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.00.0.0.0192.168.43.1
192.168.0.0255.255.0.0192.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 地址,发送。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows:配置多网卡路由表,WiFi和网线内外网不通策略 的相关文章

  • 如何使用来自 Microsoft-Windows-NDIS-PacketCapture 提供程序的实时 ETW 事件?

    更大的问题是一般如何使用实时 ETW 网络堆栈事件 但我特别感兴趣Microsoft Windows NDIS PacketCapture 提供程序 所有其他网络堆栈提供程序都部分工作 但 NDIS PacketCapture NDIS P
  • 需要 TensorFlow 依赖项。如何在 Windows 上运行 TensorFlow

    我有兴趣让 TensorFlow 在 Windows 上运行 但目前我意识到这是不可能的 因为某些依赖项无法在 Windows 上使用 例如巴泽尔 之所以出现这种需求 是因为据我目前了解 从 TensorFlow 访问 GPU 的唯一方法是
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • 不在焦点时响应键盘? (C#、Vista)

    我正在尝试编写一个应用程序 只要按下 Shift 键 无论当前哪个应用程序具有焦点 它都会做出响应 我尝试过这个SetWindowsHookEx 与GetKeyboardState 但这两种方法仅在应用程序窗口具有焦点时才有效 我需要它在全
  • 将 CrashDumps 转储到应用程序运行所在的同一文件夹中

    我编写了一个应用程序 我希望对其进行一定程度的自动调试 我想使用 Windows 错误报告将故障转储输出到应用程序运行所在的同一文件夹中 我的想法是 我可以让我的应用程序在它自己的文件夹中查找任何 dmp 文件 然后根据需要上传它们进行分析
  • Windows 操作系统中 ST_INO(os.stat() 输出)的含义

    谁能告诉我这个值的含义是什么st ino是跑步时os stat 在 Windows 上 Python 3 5 3 在早期的 Python 版本中 它包含虚拟值 但最近发生了变化 我找不到它是如何计算 生成的 我怀疑它因文件系统 NTFS F
  • 用于创建计划任务的 VBScript

    我正在尝试创建一个 VBScript 它创建一个批处理文件 然后创建一个计划任务来运行该批处理文件 到目前为止 我尝试过的所有操作都创建了批处理文件 但没有创建计划任务 并且我没有收到任何错误 这是我到目前为止所拥有的 Option Exp
  • Windows 中的蓝牙 AVRCP 命令会触发哪些事件

    可以这么说 只是在做一些高级侦察 对于我的潘多拉客户 Elpis http elpis adamhaile net 我支持全局媒体键 键盘上的 MediaPlayPause MediaNext 等 并且我希望能够支持AVRCP http e
  • 获取自动热键中的可用屏幕区域

    我正在尝试编写一些简单的 AutoHotkey 脚本来移动窗口 但在获取正确的屏幕尺寸值时遇到问题 我试图获取屏幕上可用区域的大小 通常是全屏分辨率减去任务栏 也许还有任何其他停靠窗口 如 Vista 中的侧边栏 我发现的获取屏幕宽度的方法
  • Windows 10 上的 LibPNG 构建问题

    我试图在 Windows 10 上构建 libpng 以获取 win32 二进制文件 但我认为有一个与 awk 解析带有 CRLF 行结尾的文件相关的问题 我尝试使用 dos2unix 命令转换文件 但没有成功 结果相同 在 make 命令
  • 使用管理员权限打开cmd(Windows 10)

    我有自己的 python 脚本来管理我的计算机上的 IP 地址 它主要在命令行 Windows 10 中执行netsh命令 您必须具有管理员权限 这是我自己的计算机 我是管理员 运行脚本时我已经使用管理员类型的用户 Adrian 登录 我无
  • TRACKER:错误TRK0005:无法找到:“CL.exe”。该系统找不到指定的文件

    我尝试在 Windows 8 上的 Node js 项目中执行以下命令 npm 安装 电子邮件受保护 cdn cgi l email protection 但我收到一个错误 我不知道如何处理 TRACKER 错误TRK0005 无法找到 C
  • 供所有 Win32 程序员在 Windows Aero Glass(DWM、GDI、GDI+)上绘图的文档和 API 示例

    我正在寻找良好的资源来学习使用 Win32 GDI API 或任何替代它的内容 以便使用 Win32 API 直接在玻璃窗体上进行绘制和绘制 当我使用 Delphi 时 我将其标记为 Delphi 或 Visual C 您能找到的任何代码示
  • 为什么 Git Bash 无法运行我的可执行文件?

    I am on git for windows https github com git for windows 吉特 巴什 我无法在命令行上运行可执行文件 Pedr Abc 07 MINGW64 c dev ls sqlite3 exe
  • 为什么同一个curl命令在windows和linux下输出不同的东西?

    为什么同样的curl o file https www link com 命令输出不同的东西 例如 如果我运行命令curl o source txt https www youtube com playlist list PLIx6Fwnp
  • 从 vbscript 获取 bat 中的错误级别

    我试图确定用户是否在 UAC 提示中单击 否 如果是 则不设置空端口 我将此脚本称为批处理文件 如果用户单击 否 我想退出该脚本 VB 脚本 选项显式 Main Sub Main Dim oShell objWMIService servS
  • Delphi定时器比毫秒更精确

    我在 Delphi 中有一个程序 它以 25 赫兹 每秒 25 次 的速度从外部应用程序获取帧 然后通过创建 1 2 个额外帧将其转换为 60 赫兹 每秒 60 帧 我需要通过连续构建帧缓冲区并从单独的线程输出帧来输出这些额外的帧 问题是
  • 读取存储在注册表中的 GUID 值

    我尝试读取存储为的 GUID 值binaryDelphi 注册表中的值 当我用BintoHex读取它时 但结果是相反的 看来我必须交换字节 但我认为 BinToHex 可以做到 我参考了这个线程 但找不到正确的解决方案 如何在 Delphi
  • 调整 CMD 窗口大小

    如何在 C 或 C 中以编程方式调整命令提示符窗口的大小 例如 80x25 或 80x40 字符 先感谢您 SetConsoleWindowInfo http msdn microsoft com en us library ms68612
  • 为什么标签存在却提示“系统找不到指定的批次标签”?

    在 Windows XP 中运行批处理文件时 我发现随机出现的错误消息 系统找不到指定name of label的批次标签 标签当然存在 导致此错误的原因是什么 实际上 要实现这一点 你需要两个条件 批处理文件不得使用 CRLF 行结尾 您

随机推荐