github.com/inazumav/sing-box@v0.0.0-20230926072359-ab51429a14f1/docs/configuration/inbound/tun.zh.md (about)

     1  !!! error ""
     2  
     3      仅支持 Linux、Windows 和 macOS。
     4  
     5  ### 结构
     6  
     7  ```json
     8  {
     9    "type": "tun",
    10    "tag": "tun-in",
    11    "interface_name": "tun0",
    12    "inet4_address": "172.19.0.1/30",
    13    "inet6_address": "fdfe:dcba:9876::1/126",
    14    "mtu": 9000,
    15    "auto_route": true,
    16    "strict_route": true,
    17    "inet4_route_address": [
    18      "0.0.0.0/1",
    19      "128.0.0.0/1"
    20    ],
    21    "inet6_route_address": [
    22      "::/1",
    23      "8000::/1"
    24    ],
    25    "endpoint_independent_nat": false,
    26    "stack": "system",
    27    "include_interface": [
    28      "lan0"
    29    ],
    30    "exclude_interface": [
    31      "lan1"
    32    ],
    33    "include_uid": [
    34      0
    35    ],
    36    "include_uid_range": [
    37      "1000-99999"
    38    ],
    39    "exclude_uid": [
    40      1000
    41    ],
    42    "exclude_uid_range": [
    43      "1000-99999"
    44    ],
    45    "include_android_user": [
    46      0,
    47      10
    48    ],
    49    "include_package": [
    50      "com.android.chrome"
    51    ],
    52    "exclude_package": [
    53      "com.android.captiveportallogin"
    54    ],
    55    "platform": {
    56      "http_proxy": {
    57        "enabled": false,
    58        "server": "127.0.0.1",
    59        "server_port": 8080
    60      }
    61    },
    62    
    63    ... // 监听字段
    64  }
    65  ```
    66  
    67  !!! note ""
    68  
    69      当内容只有一项时,可以忽略 JSON 数组 [] 标签。
    70  
    71  !!! warning ""
    72  
    73      如果 tun 在非特权模式下运行,地址和 MTU 将不会自动配置,请确保设置正确。
    74  
    75  ### Tun 字段
    76  
    77  #### interface_name
    78  
    79  虚拟设备名称,默认自动选择。
    80  
    81  #### inet4_address
    82  
    83  ==必填==
    84  
    85  tun 接口的 IPv4 前缀。
    86  
    87  #### inet6_address
    88  
    89  tun 接口的 IPv6 前缀。
    90  
    91  #### mtu
    92  
    93  最大传输单元。
    94  
    95  #### auto_route
    96  
    97  设置到 Tun 的默认路由。
    98  
    99  !!! error ""
   100  
   101      为避免流量环回,请设置 `route.auto_detect_interface` 或 `route.default_interface` 或 `outbound.bind_interface`。
   102  
   103  !!! note "与 Android VPN 一起使用"
   104  
   105      VPN 默认优先于 tun。要使 tun 经过 VPN,启用 `route.override_android_vpn`。
   106  
   107  #### strict_route
   108  
   109  启用 `auto_route` 时执行严格的路由规则。
   110  
   111  *在 Linux 中*:
   112  
   113  * 让不支持的网络无法到达
   114  * 将所有连接路由到 tun
   115  
   116  它可以防止地址泄漏,并使 DNS 劫持在 Android 上工作,但你的设备将无法其他设备被访问。
   117  
   118  *在 Windows 中*:
   119  
   120  * 添加防火墙规则以阻止 Windows
   121    的 [普通多宿主 DNS 解析行为](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd197552%28v%3Dws.10%29)
   122    造成的 DNS 泄露
   123  
   124  它可能会使某些应用程序(如 VirtualBox)在某些情况下无法正常工作。
   125  
   126  #### inet4_route_address
   127  
   128  启用 `auto_route` 时使用自定义路由而不是默认路由。
   129  
   130  #### inet6_route_address
   131  
   132  启用 `auto_route` 时使用自定义路由而不是默认路由。
   133  
   134  #### endpoint_independent_nat
   135  
   136  启用独立于端点的 NAT。
   137  
   138  性能可能会略有下降,所以不建议在不需要的时候开启。
   139  
   140  #### udp_timeout
   141  
   142  UDP NAT 过期时间,以秒为单位,默认为 300(5 分钟)。
   143  
   144  #### stack
   145  
   146  TCP/IP 栈。
   147  
   148  | 栈           | 描述                                                                       | 状态    |
   149  |-------------|--------------------------------------------------------------------------|-------|
   150  | system (默认) | 有时性能更好                                                                   | 推荐    |
   151  | gVisor      | 兼容性较好,基于 [google/gvisor](https://github.com/google/gvisor)               | 推荐    |
   152  | LWIP        | 基于 [eycorsican/go-tun2socks](https://github.com/eycorsican/go-tun2socks) | 上游已存档 |
   153  
   154  !!! warning ""
   155  
   156      默认安装不包含 gVisor 和 LWIP 栈,请参阅 [安装](/zh/#_2)。
   157  
   158  #### include_interface
   159  
   160  !!! error ""
   161  
   162      接口规则仅在 Linux 下被支持,并且需要 `auto_route`。
   163  
   164  限制被路由的接口。默认不限制。
   165  
   166  与 `exclude_interface` 冲突。
   167  
   168  #### exclude_interface
   169  
   170  排除路由的接口。
   171  
   172  与 `include_interface` 冲突。
   173  
   174  #### include_uid
   175  
   176  !!! error ""
   177  
   178      UID 规则仅在 Linux 下被支持,并且需要 `auto_route`。
   179  
   180  限制被路由的用户。默认不限制。
   181  
   182  #### include_uid_range
   183  
   184  限制被路由的用户范围。
   185  
   186  #### exclude_uid
   187  
   188  排除路由的用户。
   189  
   190  #### exclude_uid_range
   191  
   192  排除路由的用户范围。
   193  
   194  #### include_android_user
   195  
   196  !!! error ""
   197  
   198      Android 用户和应用规则仅在 Android 下被支持,并且需要 `auto_route`。
   199  
   200  限制被路由的 Android 用户。
   201  
   202  | 常用用户 | ID |
   203  |--|-----|
   204  | 您 | 0 |
   205  | 工作资料 | 10 |
   206  
   207  #### include_package
   208  
   209  限制被路由的 Android 应用包名。
   210  
   211  #### exclude_package
   212  
   213  排除路由的 Android 应用包名。
   214  
   215  #### platform
   216  
   217  平台特定的设置,由客户端应用提供。
   218  
   219  #### platform.http_proxy
   220  
   221  系统 HTTP 代理设置。
   222  
   223  ### 监听字段
   224  
   225  参阅 [监听字段](/zh/configuration/shared/listen/)。