github.com/sagernet/sing-box@v1.9.0-rc.20/docs/configuration/inbound/tun.zh.md (about)

     1  ---
     2  icon: material/new-box
     3  ---
     4  
     5  !!! quote "sing-box 1.9.0 中的更改"
     6  
     7      :material-plus: [platform.http_proxy.bypass_domain](#platformhttp_proxybypass_domain)  
     8      :material-plus: [platform.http_proxy.match_domain](#platformhttp_proxymatch_domain)  
     9  
    10  !!! quote "sing-box 1.8.0 中的更改"
    11  
    12      :material-plus: [gso](#gso)  
    13      :material-alert-decagram: [stack](#stack)
    14  
    15  !!! quote ""
    16  
    17      仅支持 Linux、Windows 和 macOS。
    18  
    19  ### 结构
    20  
    21  ```json
    22  {
    23    "type": "tun",
    24    "tag": "tun-in",
    25    "interface_name": "tun0",
    26    "inet4_address": "172.19.0.1/30",
    27    "inet6_address": "fdfe:dcba:9876::1/126",
    28    "mtu": 9000,
    29    "gso": false,
    30    "auto_route": true,
    31    "strict_route": true,
    32    "inet4_route_address": [
    33      "0.0.0.0/1",
    34      "128.0.0.0/1"
    35    ],
    36    "inet6_route_address": [
    37      "::/1",
    38      "8000::/1"
    39    ],
    40    "inet4_route_exclude_address": [
    41      "192.168.0.0/16"
    42    ],
    43    "inet6_route_exclude_address": [
    44      "fc00::/7"
    45    ],
    46    "endpoint_independent_nat": false,
    47    "udp_timeout": "5m",
    48    "stack": "system",
    49    "include_interface": [
    50      "lan0"
    51    ],
    52    "exclude_interface": [
    53      "lan1"
    54    ],
    55    "include_uid": [
    56      0
    57    ],
    58    "include_uid_range": [
    59      "1000-99999"
    60    ],
    61    "exclude_uid": [
    62      1000
    63    ],
    64    "exclude_uid_range": [
    65      "1000-99999"
    66    ],
    67    "include_android_user": [
    68      0,
    69      10
    70    ],
    71    "include_package": [
    72      "com.android.chrome"
    73    ],
    74    "exclude_package": [
    75      "com.android.captiveportallogin"
    76    ],
    77    "platform": {
    78      "http_proxy": {
    79        "enabled": false,
    80        "server": "127.0.0.1",
    81        "server_port": 8080,
    82        "bypass_domain": [],
    83        "match_domain": []
    84      }
    85    },
    86    
    87    ... // 监听字段
    88  }
    89  ```
    90  
    91  !!! note ""
    92  
    93      当内容只有一项时,可以忽略 JSON 数组 [] 标签。
    94  
    95  !!! warning ""
    96  
    97      如果 tun 在非特权模式下运行,地址和 MTU 将不会自动配置,请确保设置正确。
    98  
    99  ### Tun 字段
   100  
   101  #### interface_name
   102  
   103  虚拟设备名称,默认自动选择。
   104  
   105  #### inet4_address
   106  
   107  ==必填==
   108  
   109  tun 接口的 IPv4 前缀。
   110  
   111  #### inet6_address
   112  
   113  tun 接口的 IPv6 前缀。
   114  
   115  #### mtu
   116  
   117  最大传输单元。
   118  
   119  #### gso
   120  
   121  !!! question "自 sing-box 1.8.0 起"
   122  
   123  !!! quote ""
   124  
   125      仅支持 Linux。
   126  
   127  启用通用分段卸载。
   128  
   129  #### auto_route
   130  
   131  设置到 Tun 的默认路由。
   132  
   133  !!! quote ""
   134  
   135      为避免流量环回,请设置 `route.auto_detect_interface` 或 `route.default_interface` 或 `outbound.bind_interface`。
   136  
   137  !!! note "与 Android VPN 一起使用"
   138  
   139      VPN 默认优先于 tun。要使 tun 经过 VPN,启用 `route.override_android_vpn`。
   140  
   141  #### strict_route
   142  
   143  启用 `auto_route` 时执行严格的路由规则。
   144  
   145  *在 Linux 中*:
   146  
   147  * 让不支持的网络无法到达
   148  * 将所有连接路由到 tun
   149  
   150  它可以防止地址泄漏,并使 DNS 劫持在 Android 上工作。
   151  
   152  *在 Windows 中*:
   153  
   154  * 添加防火墙规则以阻止 Windows
   155    的 [普通多宿主 DNS 解析行为](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd197552%28v%3Dws.10%29)
   156    造成的 DNS 泄露
   157  
   158  它可能会使某些应用程序(如 VirtualBox)在某些情况下无法正常工作。
   159  
   160  #### inet4_route_address
   161  
   162  启用 `auto_route` 时使用自定义路由而不是默认路由。
   163  
   164  #### inet6_route_address
   165  
   166  启用 `auto_route` 时使用自定义路由而不是默认路由。
   167  
   168  #### inet4_route_exclude_address
   169  
   170  启用 `auto_route` 时排除自定义路由。
   171  
   172  #### inet6_route_exclude_address
   173  
   174  启用 `auto_route` 时排除自定义路由。
   175  
   176  #### endpoint_independent_nat
   177  
   178  启用独立于端点的 NAT。
   179  
   180  性能可能会略有下降,所以不建议在不需要的时候开启。
   181  
   182  #### udp_timeout
   183  
   184  UDP NAT 过期时间,以秒为单位,默认为 300(5 分钟)。
   185  
   186  #### stack
   187  
   188  !!! quote "sing-box 1.8.0 中的更改"
   189  
   190      :material-delete-alert: 旧的 LWIP 栈已被弃用并移除。
   191  
   192  TCP/IP 栈。
   193  
   194  | 栈      | 描述                                                               |
   195  |--------|------------------------------------------------------------------|
   196  | system | 基于系统网络栈执行 L3 到 L4 转换                                             |
   197  | gVisor | 基于 [gVisor](https://github.com/google/gvisor) 虚拟网络栈执行 L3 到 L4 转换 |
   198  | mixed  | 混合 `system` TCP 栈与 `gvisor` UDP 栈                                |
   199  
   200  默认使用 `mixed` 栈如果 gVisor 构建标记已启用,否则默认使用 `system` 栈。
   201  
   202  #### include_interface
   203  
   204  !!! quote ""
   205  
   206      接口规则仅在 Linux 下被支持,并且需要 `auto_route`。
   207  
   208  限制被路由的接口。默认不限制。
   209  
   210  与 `exclude_interface` 冲突。
   211  
   212  #### exclude_interface
   213  
   214  排除路由的接口。
   215  
   216  与 `include_interface` 冲突。
   217  
   218  #### include_uid
   219  
   220  !!! quote ""
   221  
   222      UID 规则仅在 Linux 下被支持,并且需要 `auto_route`。
   223  
   224  限制被路由的用户。默认不限制。
   225  
   226  #### include_uid_range
   227  
   228  限制被路由的用户范围。
   229  
   230  #### exclude_uid
   231  
   232  排除路由的用户。
   233  
   234  #### exclude_uid_range
   235  
   236  排除路由的用户范围。
   237  
   238  #### include_android_user
   239  
   240  !!! quote ""
   241  
   242      Android 用户和应用规则仅在 Android 下被支持,并且需要 `auto_route`。
   243  
   244  限制被路由的 Android 用户。
   245  
   246  | 常用用户 | ID |
   247  |------|----|
   248  | 您    | 0  |
   249  | 工作资料 | 10 |
   250  
   251  #### include_package
   252  
   253  限制被路由的 Android 应用包名。
   254  
   255  #### exclude_package
   256  
   257  排除路由的 Android 应用包名。
   258  
   259  #### platform
   260  
   261  平台特定的设置,由客户端应用提供。
   262  
   263  #### platform.http_proxy
   264  
   265  系统 HTTP 代理设置。
   266  
   267  ##### platform.http_proxy.enabled
   268  
   269  启用系统 HTTP 代理。
   270  
   271  ##### platform.http_proxy.server
   272  
   273  ==必填==
   274  
   275  系统 HTTP 代理服务器地址。
   276  
   277  ##### platform.http_proxy.server_port
   278  
   279  ==必填==
   280  
   281  系统 HTTP 代理服务器端口。
   282  
   283  ##### platform.http_proxy.bypass_domain
   284  
   285  !!! note ""
   286  
   287    在 Apple 平台,`bypass_domain` 项匹配主机名 **后缀**.
   288  
   289  绕过代理的主机名列表。
   290  
   291  ##### platform.http_proxy.match_domain
   292  
   293  !!! quote ""
   294  
   295      仅在 Apple 平台图形客户端中支持。
   296  
   297  代理的主机名列表。
   298  
   299  ### 监听字段
   300  
   301  参阅 [监听字段](/zh/configuration/shared/listen/)。