CFW 优雅地使用 TUN 模式接管系统流量

CFW 优雅地使用 TUN 模式接管系统流量

前言

Clash for Windows(简称 CFW)是一款 Windows 和 macOS 下好用的代理工具(Fuxk GFW),我们知道,默认的 System Proxy 模式是设置系统代理,走系统代理和支持自定义代理服务器的程序/服务可以很容易地被 CFW 代理流量。

但是在 Windows 中的 UWP 应用是无法走这个代理的,因为 UWP 应用网络隔离的『沙箱』特性,因此我们还需要使用 UWP Loopback 中的轻量 Fiddler Web Debuger 来解锁 UWP 应用的网络隔离,后续新安装的 UWP 应用也要按照上面步骤进行添加,否则 UWP 应用就会无法联网;此外,像 Git、npm、yarn 这些是无法走系统代理的,需要 手动设置代理,而且一些不支持设置代理但又无法在天朝直连国际互联网的软件/应用 Fuxk GFW 也是个难题,而绝佳的 CFW 提供了 TUN/TAP 模式就很好的解决了这个问题​ 🤕

TUN/TAP 是操作系统提供的两种虚拟网卡模式,但是他们还是有所不同的

Tun 模式

TUN三层设备 ,模拟 网络层 设备,操作 第三层 数据包比如 IP 数据包,TUN 虚拟网卡实现 IP 层隧道

TAP 模式

TAP二层设备,模拟一个物理以太网设备,操作 第二层 数据包如 以太网 数据帧

对于不遵循系统代理的软件,TUN 和 TAP 模式都可以接管系统流量并交由 CFW 处理,但是 TUN 模式在 Windows 下拥有比 TAP 模式更好的性能,本文以 TUN 模式说明,下面开始吧~

下载 Wintun

从 CFW v0.17.2 版本开始,此步骤可跳过

CFW 的 TUN 支持需要 下载 Wintun,点击 Download Wintun 即可下载一个 *.zip 格式的压缩包,解压后的目录结构应该类似这样

.
│   LICENSE.txt
│   README.md
├───bin
│   ├───amd64
│   │       wintun.dll
│   ├───arm
│   │       wintun.dll
│   ├───arm64
│   │       wintun.dll
│   └───x86
│           wintun.dll
└───include
        wintun.h

这个 wintun.dll 就是我们需要的,一般的我们个人计算机是 amd64 架构,因此我们等下需要使用的文件为 wintun/bin/amd64/wintun.dll

打开 CFW,进入 General 设定可以看到 Home Directory 这是 CFW 的主目录,点击 Open Folder 打开该文件夹

打开CFW主目录

将对应平台的 wintun.dll 文件复制到该目录

复制 wintun.dll

编辑配置

回到 CFW 主界面,进入 Settings 设置,找到 Profile Mixin,以 YAML 格式打开 Mixin 的配置文件

编辑 CFW 的 Mixin 配置文件

编辑 Mixin 配置文件如下,记得点击右下角 💾 保存按钮

mixin: # object
  dns:
    enable: true            
    enhanced-mode: redir-host  # TUN 推荐 redir-host 模式
    nameserver:  # 真实请求DNS,可按需修改
      - https://sm2.doh.pub/dns-query # DNSPod 国密 SM2 DOH
      - https://doh.pub/dns-query     # DNSPod DOH
      - https://dns.alidns.com/dns-query   # 阿里 DOH
      - https://doh.dns.sb/dns-query  # 德国 DNS.SB DOH
      - https://dns.google/dns-query  # Google DOH
      - 1.1.1.1    # Cloudflare DNS
      - 223.5.5.5  # 阿里公共 DNS
      - 223.6.6.6  # 阿里公共 DNS
      - 8.8.8.8    # Google DNS  
    ipv6: true     # 是否启用 ipv6 支持,如果你的节点不支持 ipv6 请设置为 false
  # interface-name: WLAN # 出口网卡名称,或者使用下方的自动检测
  tun:
    enable: true         # 启用 Tun 模式
    stack: gvisor        # 使用 system 需要 Clash Premium 2021.05.08 及更高版本
    dns-hijack:   
      - 198.18.0.2:53    # 默认,无需修改
    auto-route: true     # 无需修改
    auto-detect-interface: true  # 自动检测出口网卡

使用 system Tun stack

stack 使用 system 模式时,需要在 Windows 防火墙放行 clash-win64.exe,✌参考

  tun:
    enable: true    # 启用 Tun 模式
    stack: system   # 启用 system 模式 Tun Stack

# 需要 Windows 防火墙放行的安装路径参考:
# C:\Users\[用户名]\AppData\Local\Programs\Clash for Windows\resources\static\files\win\x64\clash-win64.exe

使用 AdGuard 时的 Mixin 配置参考

mixin: # object
  dns:
    enable: true            
    enhanced-mode: redir-host  # TUN 推荐 redir-host 模式
    nameserver:  # 真实请求DNS,可按需修改
      - https://doh.dns.sb/dns-query  # 德国 DNS.SB DOH
      - https://dns.adguard.com/dns-query
      - tls://dns.adguard.com
      - 2.dnscrypt.default.ns1.adguard.com
      - 2.dnscrypt.default.ns2.adguard.com
      - 94.140.14.14
      - 94.140.15.15
    ipv6: true     # 是否启用 ipv6 支持,如果你的节点不支持 ipv6 请设置为 false
  # interface-name: WLAN # 出口网卡名称,或者使用下方的自动检测
  tun:
    enable: true         # 启用 Tun 模式
    stack: system        # 使用 system 需要 Clash Premium 2021.05.08 及更高版本
    dns-hijack:          # 上面这项使用 system 还需要在系统防火墙放行 clash-win64
      - 198.18.0.2:53    # 默认,无需修改
    auto-route: true     # 无需修改
    auto-detect-interface: true  # 自动检测出口网卡

上面是 博主 现在使用的配置文件,如果需要的话,你可以自己修改,更多模式看 官方文档

安装 Wintun

在 CFW 的 General 设定,找到 Service Mode 右边的 Manage,弹出确认框,点击 Install 安装,如果弹出 UAC 权限,点击 ,安装完成后 CFW 会自动重启

安装 wintun

开启Mixin

  • Mixin 开启
  • System Proxy 关闭
  • 其他的按需开启

enable-mixin

上面的配置没问题的话,现在你应该可以在系统网络适配器中看到一个 Clash 的虚拟网卡设备,并且国际互联网畅通了,系统所有流量都被 Clash Tunnel 接管并交给 CFW 代理了,😋 Enjoy !

CFW TUN

参考信息:

CFW 优雅地使用 TUN 模式接管系统流量

https://www.dejavu.moe/posts/cfw-tun/

作者

Dejavu

发布于

2021-07-14

更新于

2021-09-21

许可协议

评论