Tunnel三种模式的区别
编辑
493
2024-08-21
1. 起源
自从了解到 tunnel 模式的优势后,它已经成为许多人替代传统 system proxy 的首选。然而,tunnel 模式有三种不同的网络堆栈实现,每种都有其特点和适用场景。
2. Tunnel 模式概述
Tunnel模式在网络层(第三层)接收流量,主要处理的是 TCP 和 UDP 协议的数据(虽然 ICMP 也是第三层协议,但通常不会去实现对它的处理)。接收到这些流量后,需要对可能被分割的数据包进行重组,以恢复完整的数据。
3. 三种网络堆栈
3.1 System
解释:使用操作系统内核(kernelspace)创建 TCP 连接。
优点:效率最高,直接利用系统内核的网络栈。
缺点:兼容性可能受限于特定操作系统。
3.2 gVisor
解释:在用户空间(userspace)实现的轻量级 IP 协议栈(lwIP)。
优点:兼容性最佳,可在各种环境中运行。
缺点:效率相对较低,因为在用户空间运行。
举个例子,在ios设备上用sing-box的tunnel模式,堆栈选择system不能在ios上正常启动,但是使用gVisor即可正常启动。这个实际上就是兼容性问题了。
3.3 mixed
解释:TCP 使用 system 模式,UDP 使用 gVisor 模式。
优点:平衡了效率和兼容性。
缺点:实现复杂度增加,可能在某些特殊情况下表现不一致。
4.如何选择
个人建议,不管在什么环境下都按照 system>mixed>gvisor 这个顺序进行尝试
这样能保证性能最优,使用起来最舒服。
5.鸣谢
狐狐🦊
- 0
- 0
-
分享