clashTUN模式
clashTUN
模式
clash TUN
模式
简介
Tun 模式可以通过新建⼀个 Tun 虚拟⽹卡接受操作系统的三层流量,从⽽拓展 Clash ⼊⼝(inbound) 转发能⼒。Tun 模式有以下潜在的优点:
提升
Clash
处理
UDP
的能⼒
从
Inbound
发回三层流量时,
IP
源地址可由
Clash
控制,因此在使⽤
socks5
或
shadowsoks
协议时,可以表达
socks5/ss
协议发回的
UDP
流量中不同的源
IP
地址。因此,有可能
通过
OutBound
代理实现
STUN
因此,对在代理条件下很多游戏的体验会有提升。
可以劫持任何三层流量,
Clash
可以在任何
IP
地址和任何端⼝提供某些服务,⾮常灵活因⽽可以实现
DNS
劫持
可以与操作系统的⽹络栈结合,利⽤
iptables
等组件的能⼒
实现
Tun 模式的核⼼问题有两个:
使⽤操作系统的
API
建⽴
Tun NIC
(
Network Interface Card
),得到
IP Packet
由三层
IP Packet
重组传输层
TCP stream / UDP Packet
,交由
Clash
进⾏转发
其中,创建 NIC 并得到三层⽹络包可以由⼀系列系统调⽤实现。⽽由三层流量重组四层流量需要⽤户态⽹络栈。因为 Clash 使⽤ Go 语⾔,PR393 使⽤了 gvisor 的⽹络栈。
gvisor 的⽹络栈前⾝是 netstack 。
配置