Files
XTLS_Xray-docs-next/docs/config/inbounds/tun.md
T

3.5 KiB

TUN

创建一个 TUN 接口,发往此接口的流量将由 Xray 处理。目前支持 Windows、Linux、macOS 和 FreeBSD。

Android 需要外部 APP 传入 TUN FD,使用 VPN Service 重定向流量。无法独立使用,仅作为 APP 将流量接入 Xray 的方式。

InboundConfigurationObject

InboundConfigurationObject 对应 InboundObject 中的 settings 项。

{
  "inbounds": [
    {
      // ...
      "protocol": "tun",
      // [!code focus:9]
      "settings": {
        "name": "xray0",
        "mtu": 1500,
        "gateway": ["10.0.0.1/16", "fc00::1/64"],
        "dns": ["1.1.1.1", "8.8.8.8"],
        "userLevel": 0,
        "autoSystemRoutingTable": ["0.0.0.0/0", "::/0"],
        "autoOutboundsInterface": "auto"
      }
    }
  ]
}

name: string

创建的 TUN 接口名。默认 "xray0"

mtu: number

接口的 MTU。默认值为 1500

gateway: [string]

为 TUN 接口配置的地址前缀列表,通常分别填写 IPv4 / IPv6,例如 "10.0.0.1/16""fc00::1/64"

dns: [string]

为 TUN 接口配置的 DNS 服务器列表,例如 "1.1.1.1""8.8.8.8"

userLevel: number

用户等级,连接会使用这个用户等级对应的 本地策略

userLevel 的值, 对应 policylevel 的值. 如不指定, 默认为 0。

autoSystemRoutingTable: [string]

自动写入系统路由表要导入该 TUN 接口的目标网段列表。每一项均为 CIDR,例如 "0.0.0.0/0" 表示所有 IPv4 流量,"::/0" 表示所有 IPv6 流量。

当前仅支持 Windows。其他系统需要手动配置路由表。

autoOutboundsInterface: string

自动为 Xray 的出站绑定物理网络接口,用于避免把 Xray 自己发出的流量再次送回 TUN 造成回环。

相当于为所有出站自动设置 sockopt.interface(同时还会额外包括一些无法配置出站设置的请求,比如 内置 DNS 的各种 local 模式)可以被手动设置 sockopt 覆盖。

默认值为 null,即未配置。可填写具体接口名,也可填写 "auto" 让 Xray 自动选择。如果配置了 autoSystemRoutingTable 但未显式指定此项,Xray 会自动按 "auto" 处理。

使用提示

如果未配置 autoSystemRoutingTable,仍需要手动配置路由将数据导向创建的 TUN 接口,否则它只是个接口。

配置了 gatewaydnsautoSystemRoutingTableautoOutboundsInterface 后,Xray 可以在支持的平台上自动完成一部分系统侧配置;如果你的平台尚未实现这些自动设置,或者需要更细粒度的策略路由,仍然需要配合系统工具手动处理。

如果只想代理某一个或一些进程,Xray 路由系统中的进程名路由会十分有用。

::: warning 注意可能的流量回环的问题,设置路由后可能将 Xray 发出的请求发回 Xray 造成回环! 优先使用 autoOutboundsInterface 避免此问题;如果你需要手动控制,也可以使用 sockopt 中的 interface 绑定实际的物理网络接口。ipconfig (Windows) ip a (Linux) 将有助于找到你需要的接口名。 或者使用出站的 sendThrough 它直接在 OutboundObject 中可用,没有 sockOpt.interface 那么深的嵌套层级,这里需要使用的是网卡上的 IP,比如 192.168.1.2 (如你所见它的缺点是不能自动支持双栈,请按你出站的实际使用的 IP 选择)。 :::