什么是带有 vpn 隧道的客户端中的 tcp/ip 数据包流

佐哈尔81

我是 VPN 网络的新手,所以我有一个概念性问题。

我的场景有一个客户端通过规则集连接到 VPN,该规则集将一些数据包隧道传输到远程 VPN 代理,以便在目的地被允许时进行分析和转发。

如果使用基于加密的协议,此隧道将使用附加层包装每个传入数据包,该层将在另一侧使用证书(例如)进行验证。

隧道也由一个虚拟接口表示,假设我们将使用 utun0。

所以我的问题与在客户端和某些远程服务之间建立 tcp/ip 会话的情况有关。因此,对于传出的数据包,我可以假设它们将被 vpn 隧道层包裹,然后由 vpn 本身解开。

但是对于传入的数据包,它们将与 vpn 层一起到达,因此首先需要由 VPN 客户端进行验证,然后内层必须是进程,但这发生在另一个接口上(例如常规的 en0,它包含客户端的IP)。

所以首先,我想知道虚拟接口 utun0 如何获取其数据包 - 也许它使用特定端口?

其次,当 tcp/ip 传入数据包到达 utun0 时,隧道客户端将对其进行解密。它是否移动到从其 vpn 层解开的常规接口 (en0)?

谢谢 !

丹尼尔·B

所以首先,我想知道虚拟接口 utun0 如何获取其数据包 - 也许它使用特定端口?

VPN 客户端(或服务器)“拥有”接口。与真实网络接口由硬件和物理连接支持的方式类似,虚拟网络接口由软件支持。任何进入接口(传出流量)的东西都会被传递到 VPN 客户端进程。任何退出接口(传入流量)的东西都来自 VPN 客户端进程。

具体取决于虚拟接口的确切类型。对于 macOS utun,它是一个指向套接字的文件描述符。

隧道连接(IPSec、WireGuard、OpenVPN 等)是 VPN 客户端建立的常规网络连接。

其次,当 tcp/ip 传入数据包到达 utun0 时,隧道客户端将对其进行解密。它是否移动到从其 vpn 层解开的常规接口 (en0)?

你有它倒退:传入的隧道流量通过常规网络接口(例如en0到达建立连接的进程(VPN 客户端)接收并处理它。之后,它被发送到utun0,在那里它显示为传入的未加密流量。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

配置openvpn客户端以通过Openwrt中的VPN隧道路由所有LAN流量

VPN客户端如何通过隧道传输所有网络流量?

FortiClient SSL VPN:无法启动SSLVPN隧道客户端

同一AP上有多个客户端的无线延迟/数据包丢失

为什么我的服务器套接字没有收到客户端发送的数据包

带有 dpdk 的 arp 数据包的 rte 流

VPN客户端解析AWS中的私有DNS主机名

具有OpenVPN或AWS VPN客户端的VPC?

如何通过 Azure VPN 隧道从 C# API 发送 UDP 数据包

OpenSUSE中的VPN客户端

Netcat作为UDP客户端不接收来自Arduino Wifi Shield的响应数据包。简单的C UDP客户端可以。为什么?

将UDP数据包发送到2个客户端,只有一个接收

思科VPN客户端

打开VPN客户端

自己的简单VPN的数据包封装

在Ubuntu 16.04 Desktop上为VPN客户端配置隧道适配器?

OpenVPN客户端只能通过隧道与VPN服务器通信;通过常规NIC休息

向客户端发送数据包

IP数据包传回客户端

DNS客户端实现中的数据包格式错误

思科AnyConnect安全移动客户端3.1.03103。VPN代理服务没有响应

AWS Client VPN客户端-客户端通信

服务器在接收1个数据包字符串时断开与客户端的连接,但没有另一个

将网关的本地链路v6地址用于LAN客户端的IPv6网关设置...网关看到的来自客户端的数据包的源IP是什么?

带有示例的C#在System.Sockets中接收数据包

带有TLS的Apache httpclient,但无法在Wireshark中捕获tls数据包

有状态地处理Spark中的网络数据包

仅在WireShark中显示有问题的数据包

列出连接的VPN客户端