将现有的 Windows 套接字重定向到不同的接口

将现有的 Windows 套接字重定向到不同的接口

我有一台笔记本电脑,上面有两个网卡,一个有线,一个无线。两个接口都在同一个子网上。我能够使用 Wi-Fi 接口进行网络导航,使用有线接口进行内部局域网通信,更改本地路由表,并仅为 Wi-Fi 接口添加默认网关。这是最简单的部分。我的目标是当我断开笔记本电脑对接时,能够保持完全相同的现有内部局域网 TCP 连接,将它们从局域网接口重定向到无线接口。据我了解,Windows 套接字由一个唯一的 4 元组描述,该 4 元组由源和目标 IP 地址以及端口号组成,即本地和远程套接字地址。我试图做的是拦截断开事件并触发一个脚本,该脚本删除有线接口地址并将 Wi-Fi 接口地址设置为与有线接口完全相同的地址。不幸的是,内部局域网套接字是使用 Wi-Fi 接口重新创建的,也就是说,源端口与有线接口使用的端口不同,即使源地址和远程地址和端口与有线接口之前使用的相同。是否可以将现有的 TCP 连接重定向到不同的接口?非常感谢您的建议

因为这可能不太容易理解,所以我将举一个具体的例子:

假设我的有线接口已分配地址 192.168.1.2,无线接口已分配地址 192.168.1.3,并且两个接口同时处于活动状态。

我使用地址 192.168.1.2 和端口号 50885 作为源地址和源端口以及地址 192.168.1.5 和端口号 445 作为远程地址和远程端口建立 tcp 连接。

建立上述 tcp 连接后,我将笔记本电脑断开连接(相当于断开以太网电缆)。

我想知道是否可以通过首先禁用以太网接口(或释放以太网 ip 地址并删除它以防止 Windows 通过禁用有线接口来终止 tcp 连接)然后将地址 192.168.1.2 分配给无线接口来维持上述 tcp 连接。

我的测试告诉我这是不可能的,但我真的希望这成为可能。

相关内容