了解使用 Wireguard/Tailscale 和 BitTorrent 协议时的数据包路由

了解使用 Wireguard/Tailscale 和 BitTorrent 协议时的数据包路由

我有一台在 VPN 网络上具有私有 IP 的本地机器A以及具有私有 IP 的 VPS它充当出口节点,即本地机器中的所有流量都应该从本地机器加密路由到 VPS,然后将其路由到最终的公共目的地。

我试图找出我的 VPN 是否泄漏了数据,因此我启动了 Wireshark,让它监听 VPN 创建的虚拟接口,然后通过ip.addr != B

我原本以为只会看到 DNS 请求,但所有 BitTorrent 流量也都出现了。我可以看到源/目标为的数据包,A -> <Public IP>反之亦然

它显然是通过接口离开并使用本地机器(macOS)的私有 IP 地址A,但查看 WireShark 输出似乎没有通过 VPS。

更奇怪的是,如果我使用ipleak.net我没有看到任何泄漏,torrent地址作为VPS的公共地址出现。

我是否只是错误地解释了输出?

答案1

您对输出的解释不正确。更具体地说,您在错误的界面上期待该输出。

在 VPN 客户端创建的虚拟接口上看到常规互联网流量是完全正常的:这就是虚拟接口是为了。其全部目的是将“常规”流量传送到互联网,以便 VPN 客户端可以对其进行封装 – 这对于您的应用程序来说是不可见的,而您的应用程序只需像以前一样继续与各种互联网主机进行通信。

您期望看到的流量(DNS流量以及加密的A↔B VPN隧道流量)将在原来的网络接口,即以太网或者Wi-Fi适配器,它在外部会有B的外部地址。

在此处输入图片描述

如果您想“实时”查看此信息,请尝试设置不加密的 GRE 或 IPIP 隧道,以便 Wireshark 可以同时查看外部和内部标头。但由于 macOS 实际上不执行任何一项操作,因此您可以加载示例捕获,例如路由协议或者IP-in-IP.pcap进入 Wireshark。

(两个示例均使用 10.0.0.1↔10.0.0.2 作为外部/WAN 地址,使用 1.1.1.1↔2.2.2.2 作为内部/VPN 地址,并且两个示例均显示通过 10.0.0.2 VPN 服务器的“ping 2.2.2.2”的“外部”流量。该站点有更多样本可用的。)

相关内容