66 lines
2.6 KiB
Markdown
66 lines
2.6 KiB
Markdown
---
|
|
sidebarTitle: "功能: TUN 设备"
|
|
sidebarOrder: 2
|
|
---
|
|
|
|
# TUN 设备
|
|
|
|
Premium 内核支持 TUN 设备. 作为网络层设备, 它可以用来处理 TCP、UDP、ICMP 流量. 它已经在生产环境中进行了广泛的测试和使用 - 您甚至可以用它来玩竞技游戏.
|
|
|
|
使用 Clash TUN 的最大优势之一是内置支持对操作系统路由表、路由规则和 nftable 的自动管理. 您可以通过选项 `tun.auto-route` 和 `tun.auto-redir` 来启用它. 这个功能替换了古老的配置选项 `redir-port`(TCP), 以方便配置和提高稳定性.
|
|
|
|
::: tip
|
|
`tun.auto-route` 仅在 macOS、Windows、Linux 和 Android 上可用, 并且仅接收 IPv4 流量。`tun.auto-redir` 仅在 Linux 上可用(需要内核 netlink 支持)。
|
|
:::
|
|
|
|
Clash 有两种可供选择的 TCP/IP 协议栈: `system` or `gvisor`. 为了获得最好的性能, 我们建议您优先使用 `system` 栈, 只有遇到兼容性问题时才使用 `gvisor`. 并且如果你遇到这样的情况, 请立即[提交 Issue](https://github.com/Dreamacro/clash/issues/new/choose).
|
|
|
|
## 技术限制
|
|
|
|
* 对于 Android, 控制设备位于 `/dev/tun` 而不是 `/dev/net/tun`, 您需要先创建一个软链接 (i.e. `ln -sf /dev/tun /dev/net/tun`)
|
|
|
|
* 如果系统 DNS 位于私有 IP 地址上, DNS 劫持可能会失败 (因为 `auto-route` 不会捕获私有网络流量).
|
|
|
|
## Linux, macOS 和 Windows
|
|
|
|
这是 TUN 功能的示例配置:
|
|
|
|
```yaml
|
|
interface-name: en0 # 与 `tun.auto-detect-interface` 冲突
|
|
|
|
tun:
|
|
enable: true
|
|
stack: system # or gvisor
|
|
# dns-hijack:
|
|
# - 8.8.8.8:53
|
|
# - tcp://8.8.8.8:53
|
|
# - any:53
|
|
# - tcp://any:53
|
|
auto-route: true # manage `ip route` and `ip rules`
|
|
auto-redir: true # manage nftable REDIRECT
|
|
auto-detect-interface: true # 与 `interface-name` 冲突
|
|
```
|
|
|
|
请注意, 由于使用了 TUN 设备和对系统路由表、nftable 的操作, Clash 在此处将需要超级用户权限来运行.
|
|
|
|
```shell
|
|
sudo ./clash
|
|
```
|
|
|
|
如果您的设备已经有一些 TUN 设备, Clash TUN 可能无法工作 - 您必须手动检查路由表和路由规则. 在这种情况下, `fake-ip-filter` 也许也有帮助.
|
|
|
|
## Windows
|
|
|
|
您需要访问 [WinTUN 网站](https://www.wintun.net) 并下载最新版本. 之后, 将 `wintun.dll` 复制到 Clash 主目录. 示例配置:
|
|
|
|
```yaml
|
|
tun:
|
|
enable: true
|
|
stack: gvisor # or system
|
|
dns-hijack:
|
|
- 198.18.0.2:53 # 当 `fake-ip-range` 是 198.18.0.1/16, 应该劫持 198.18.0.2:53
|
|
auto-route: true # 为 Windows 自动设置全局路由
|
|
# 推荐使用 `interface-name`
|
|
auto-detect-interface: true # 自动检测接口, 与 `interface-name` 冲突
|
|
```
|