713 lines
18 KiB
Markdown
713 lines
18 KiB
Markdown
# OpenVPN 客户端
|
||
|
||
!!! question "自 sing-box 1.14.0 起"
|
||
|
||
## 结构
|
||
|
||
```json
|
||
{
|
||
"type": "openvpn-client",
|
||
"tag": "ovpn-client",
|
||
|
||
"mode": "tls",
|
||
"server": "127.0.0.1",
|
||
"server_port": 1194,
|
||
"servers": [
|
||
{
|
||
"server": "127.0.0.1",
|
||
"server_port": 1194,
|
||
"network": "udp"
|
||
}
|
||
],
|
||
"remote_random": false,
|
||
"network": "udp",
|
||
"address": [],
|
||
"peer_address": "",
|
||
"peer_address_ipv6": "",
|
||
"topology": "",
|
||
"username": "",
|
||
"password": "",
|
||
"auth_retry": "none",
|
||
"static_challenge": "",
|
||
"static_challenge_echo": false,
|
||
"static_key": [],
|
||
"static_key_path": "",
|
||
"key_direction": "",
|
||
"tls": {
|
||
"server_name": "",
|
||
"server_name_type": "name",
|
||
"certificate": [],
|
||
"certificate_path": "",
|
||
"client_certificate": [],
|
||
"client_certificate_path": "",
|
||
"client_key": [],
|
||
"client_key_path": "",
|
||
"peer_fingerprint": [],
|
||
"crl_path": "",
|
||
"remote_certificate_ku": [],
|
||
"remote_certificate_eku": "",
|
||
"remote_certificate_tls": "",
|
||
"certificate_profile": "",
|
||
"ns_certificate_type": "",
|
||
"version_min": "1.2",
|
||
"version_max": "",
|
||
"cipher": "",
|
||
"groups": "",
|
||
"control_wrap": {
|
||
"type": "",
|
||
"key": [],
|
||
"key_path": "",
|
||
"direction": ""
|
||
}
|
||
},
|
||
"cipher": "",
|
||
"data_ciphers": [],
|
||
"data_ciphers_fallback": "",
|
||
"auth": "",
|
||
"mss_fix": 0,
|
||
"mss_fix_disabled": false,
|
||
"mss_fix_mode": "",
|
||
"fragment": 0,
|
||
"replay_window": 0,
|
||
"replay_window_time": "",
|
||
"compression": "",
|
||
"compression_lzo": "",
|
||
"allow_compression": "no",
|
||
"route_no_pull": false,
|
||
"pull_filters": [
|
||
{
|
||
"action": "ignore",
|
||
"text": "route "
|
||
}
|
||
],
|
||
"routes": [],
|
||
"route_gateway": "",
|
||
"route_metric": 0,
|
||
"redirect_gateway": false,
|
||
"redirect_gateway_flags": [],
|
||
"redirect_private": false,
|
||
"block_ipv6": false,
|
||
"ping_interval": "",
|
||
"ping_restart": "",
|
||
"ping_restart_disabled": false,
|
||
"renegotiate_interval": "",
|
||
"renegotiate_disabled": false,
|
||
"renegotiate_bytes": 0,
|
||
"renegotiate_packets": 0,
|
||
"tls_timeout": "",
|
||
"handshake_window": "",
|
||
"explicit_exit_notify": 0,
|
||
"system": false,
|
||
"name": "",
|
||
"mtu": 1500,
|
||
|
||
... // UDP NAT 字段
|
||
|
||
... // 拨号字段
|
||
}
|
||
```
|
||
|
||
!!! note ""
|
||
|
||
当内容只有一项时,可以忽略 JSON 数组 [] 标签。
|
||
|
||
## 字段
|
||
|
||
### mode
|
||
|
||
OpenVPN 会话模式,可选值为 `tls` 或 `static_key`。
|
||
|
||
默认使用 `tls`。
|
||
|
||
`static_key` 是已弃用的 OpenVPN 模式,不使用 TLS 控制通道且不提供前向保密。
|
||
为兼容无法修改的企业 VPN 服务器,此模式仍作为显式兼容选项保留。该模式不使用
|
||
`tls`、用户名/密码认证、拉取选项或 TLS 重协商选项。
|
||
|
||
### server
|
||
|
||
OpenVPN 服务器地址。
|
||
|
||
`server` 和 `servers` 之一必填。
|
||
|
||
与 `servers` 冲突。
|
||
|
||
### server_port
|
||
|
||
OpenVPN 服务器端口。
|
||
|
||
设置 `server` 时必填。
|
||
|
||
### servers
|
||
|
||
OpenVPN 服务器列表。
|
||
|
||
客户端按顺序尝试服务器,并在连接失败时尝试下一台服务器。
|
||
|
||
`server` 和 `servers` 之一必填。
|
||
|
||
与 `server` 冲突。
|
||
|
||
### servers.server
|
||
|
||
==必填==
|
||
|
||
OpenVPN 服务器地址。
|
||
|
||
### servers.server_port
|
||
|
||
==必填==
|
||
|
||
OpenVPN 服务器端口。
|
||
|
||
### servers.network
|
||
|
||
该服务器的 OpenVPN 传输网络,可选值为 `udp` 或 `tcp`。
|
||
|
||
默认使用顶层 `network`。
|
||
|
||
### remote_random
|
||
|
||
连接前随机排列 `servers` 顺序。
|
||
|
||
默认禁用。
|
||
|
||
### network
|
||
|
||
默认 OpenVPN 传输网络,可选值为 `udp` 或 `tcp`。
|
||
|
||
默认使用 `udp`。
|
||
|
||
该值应用于 `server` 和未单独设置 `network` 的 `servers` 条目。
|
||
|
||
### address
|
||
|
||
本地 IPv4 和 IPv6 隧道前缀。
|
||
|
||
`static_key` 模式至少需要一个地址。在 TLS 模式下该字段可选,并可被服务器推送的地址替换。
|
||
|
||
### peer_address
|
||
|
||
IPv4 隧道对端地址及 VPN 网关。
|
||
|
||
在 `static_key` 模式下配置 IPv4 `address` 时必填。
|
||
|
||
### peer_address_ipv6
|
||
|
||
IPv6 隧道对端地址及 VPN 网关。
|
||
|
||
在 `static_key` 模式下配置 IPv6 `address` 时必填。
|
||
|
||
### topology
|
||
|
||
隧道拓扑,可选值为 `net30`、`p2p` 或 `subnet`。
|
||
|
||
TLS 模式下为空时使用服务器推送的拓扑。
|
||
|
||
### username
|
||
|
||
OpenVPN 用户名/密码认证的用户名。
|
||
|
||
仅在 TLS 模式下可用。
|
||
|
||
### password
|
||
|
||
OpenVPN 用户名/密码认证的密码。
|
||
|
||
### auth_retry
|
||
|
||
用户名/密码认证失败后的行为,可选值为 `none`、`nointeract` 或 `interact`。
|
||
|
||
默认使用 `none`,并将永久认证失败视为终止错误。
|
||
|
||
`nointeract` 和 `interact` 允许重试认证。
|
||
|
||
### static_challenge
|
||
|
||
请求认证响应时显示的静态质询文本。
|
||
|
||
### static_challenge_echo
|
||
|
||
以明文显示静态质询响应。
|
||
|
||
### static_key
|
||
|
||
OpenVPN 静态密钥内容。
|
||
|
||
在 `static_key` 模式下必填。
|
||
|
||
与 `static_key_path` 冲突。
|
||
|
||
### static_key_path
|
||
|
||
OpenVPN 静态密钥路径。
|
||
|
||
在 `static_key` 模式下未设置 `static_key` 时必填。
|
||
|
||
与 `static_key` 冲突。
|
||
|
||
### key_direction
|
||
|
||
静态密钥方向,可选值为 `server` 或 `client`。
|
||
|
||
为空时双向使用密钥。仅在 `static_key` 模式下可用。
|
||
|
||
### tls
|
||
|
||
在 TLS 模式下必填。
|
||
|
||
OpenVPN 控制通道 TLS 配置。
|
||
|
||
### tls.server_name
|
||
|
||
预期的服务器证书名称。
|
||
|
||
为空时禁用证书名称验证,但仍会验证证书链或 fingerprint 与服务器证书用途。
|
||
|
||
### tls.server_name_type
|
||
|
||
与 `tls.server_name` 匹配的证书字段,可选值为 `subject`、`name` 或 `name-prefix`。
|
||
|
||
设置 `tls.server_name` 时默认使用 `name`。
|
||
|
||
`subject` 匹配完整证书 subject,`name` 精确匹配 common name,`name-prefix` 匹配 common name 前缀。
|
||
|
||
### tls.certificate
|
||
|
||
受信任 CA 证书内容。
|
||
|
||
`tls.certificate`、`tls.certificate_path` 和 `tls.peer_fingerprint` 之一必填。
|
||
|
||
与 `tls.certificate_path` 冲突。
|
||
|
||
### tls.certificate_path
|
||
|
||
受信任 CA 证书路径。
|
||
|
||
`tls.certificate`、`tls.certificate_path` 和 `tls.peer_fingerprint` 之一必填。
|
||
|
||
与 `tls.certificate` 冲突。
|
||
|
||
### tls.client_certificate
|
||
|
||
客户端证书内容。
|
||
|
||
与 `tls.client_certificate_path` 冲突。
|
||
|
||
### tls.client_certificate_path
|
||
|
||
客户端证书路径。
|
||
|
||
与 `tls.client_certificate` 冲突。
|
||
|
||
### tls.client_key
|
||
|
||
客户端私钥内容。
|
||
|
||
与 `tls.client_key_path` 冲突。
|
||
|
||
### tls.client_key_path
|
||
|
||
客户端私钥路径。
|
||
|
||
与 `tls.client_key` 冲突。
|
||
|
||
客户端证书和私钥必须同时设置或同时为空。
|
||
|
||
### tls.peer_fingerprint
|
||
|
||
允许的服务器 leaf certificate 的 SHA-256 fingerprint。
|
||
|
||
每个 fingerprint 必须是不带分隔符的 64 字符小写十六进制字符串。
|
||
|
||
同时配置受信任 CA 时,会同时验证证书链和 fingerprint。未配置受信任 CA 时,会验证 fingerprint、证书有效期、配置的名称和证书用途,但不验证证书链。
|
||
|
||
### tls.crl_path
|
||
|
||
用于拒绝已吊销服务器证书的 PEM 或 DER CRL 文件路径。
|
||
|
||
根据受信任证书链验证 CRL 签名和有效期。
|
||
|
||
默认禁用。
|
||
|
||
### tls.remote_certificate_ku
|
||
|
||
服务器证书所需的 Key Usage mask,使用 OpenVPN `remote-cert-ku` 格式的十六进制值。
|
||
|
||
证书必须包含至少一个已配置 mask 中的所有 bit。
|
||
|
||
默认禁用。
|
||
|
||
### tls.remote_certificate_eku
|
||
|
||
服务器证书所需的 Extended Key Usage。
|
||
|
||
接受 OpenSSL 名称、Object Identifier 以及 `server` 和 `client` 别名。
|
||
|
||
设置后,该字段会替代默认的 `tls.remote_certificate_tls` 检查。
|
||
|
||
与显式配置的 `tls.remote_certificate_tls` 冲突。
|
||
|
||
### tls.remote_certificate_tls
|
||
|
||
对端证书用途检查,可选值为 `server`、`client` 或 `none`。
|
||
|
||
默认使用 `server`。
|
||
|
||
`none` 禁用证书用途检查。
|
||
|
||
与 `tls.remote_certificate_eku` 冲突。
|
||
|
||
### tls.certificate_profile
|
||
|
||
证书 profile,可选值为 `insecure`、`legacy`、`preferred` 或 `suiteb`。
|
||
|
||
默认使用 `legacy`。
|
||
|
||
`insecure` 为兼容不可变对端而接受使用 MD5 或 SHA-1 签名的证书链和较小的旧密钥,仅应在对端无法升级时使用。`legacy` 接受 SHA-1 但拒绝 MD5 签名;`preferred` 要求更强的签名和密钥。
|
||
|
||
选择 `suiteb` 且 `tls.cipher` 为空时,TLS 1.2 cipher 列表默认使用 Suite B ECDHE-ECDSA AES-GCM 套件。该 profile 不限制显式配置的 `tls.cipher` 和 `tls.groups`。
|
||
|
||
### tls.ns_certificate_type
|
||
|
||
已弃用的 Netscape 证书类型检查,`server` 或 `client` 之一。
|
||
|
||
默认禁用。请优先使用 `tls.remote_certificate_tls`。
|
||
|
||
### tls.version_min
|
||
|
||
最低 TLS 版本,可选值为 `1.0`、`1.1`、`1.2` 或 `1.3`。
|
||
|
||
默认使用 `1.2`。
|
||
|
||
### tls.version_max
|
||
|
||
最高 TLS 版本,可选值为 `1.0`、`1.1`、`1.2` 或 `1.3`。
|
||
|
||
默认使用支持的最高版本。
|
||
|
||
该值不能低于 `tls.version_min`。
|
||
|
||
### tls.cipher
|
||
|
||
TLS 1.2 及更低版本允许的 OpenSSL cipher suite 名称,以冒号分隔。
|
||
|
||
为空时使用默认 TLS cipher suite。该字段不控制 TLS 1.3 cipher suite。
|
||
|
||
### tls.groups
|
||
|
||
按偏好顺序排列的 TLS key exchange group,以冒号分隔。
|
||
|
||
支持 `X25519`、`SECP256R1`、`SECP384R1` 和 `SECP521R1`,包括其常用 OpenSSL 和 NIST 别名。
|
||
|
||
为空时使用默认 TLS group。
|
||
|
||
### tls.control_wrap
|
||
|
||
OpenVPN 控制通道封装。
|
||
|
||
等价于 OpenVPN `tls-auth`、`tls-crypt` 和 `tls-crypt-v2`。
|
||
|
||
为空时禁用。
|
||
|
||
### tls.control_wrap.type
|
||
|
||
控制通道封装类型,可选值为 `tls_auth`、`tls_crypt` 或 `tls_crypt_v2`。
|
||
|
||
### tls.control_wrap.key
|
||
|
||
控制通道封装密钥内容。
|
||
|
||
与 `tls.control_wrap.key_path` 冲突。
|
||
|
||
### tls.control_wrap.key_path
|
||
|
||
控制通道封装密钥路径。
|
||
|
||
与 `tls.control_wrap.key` 冲突。
|
||
|
||
### tls.control_wrap.direction
|
||
|
||
`tls-auth` 密钥方向,可选值为 `server` 或 `client`。
|
||
|
||
仅当 `tls.control_wrap.type` 为 `tls_auth` 时可用。为空时双向使用密钥。
|
||
|
||
### cipher
|
||
|
||
`static_key` 模式使用的数据通道 cipher。
|
||
|
||
为空时使用上游静态密钥模式的默认值 `BF-CBC`。`BF-CBC` 是采用 64 位 block size
|
||
的旧 cipher;应尽可能显式配置服务器要求的 cipher。静态密钥 cipher 包括
|
||
`BF-CBC`、`CAST5-CBC`、`DES-CBC`、`DES-EDE-CBC`、`DES-EDE3-CBC`、
|
||
AES-CBC、ARIA-CBC、Camellia-CBC 系列,以及 `SEED-CBC`、`SM4-CBC` 和 `NONE`。
|
||
|
||
仅在 `static_key` 模式下可用。`NONE` 不提供机密性。
|
||
|
||
### data_ciphers
|
||
|
||
允许的 OpenVPN 数据通道 cipher。
|
||
|
||
仅在 TLS 模式下可用。
|
||
|
||
默认使用 `AES-256-GCM`、`AES-128-GCM` 和 `CHACHA20-POLY1305`。
|
||
|
||
AES-GCM 系列还包括 `AES-192-GCM`。保留的 cipher 包括 AES、ARIA、Camellia、DES、Blowfish、CAST5、SEED 和 SM4 的 CBC、CFB、OFB 形式,以及 `NONE`。CFB 和 OFB 仅可用于 TLS 模式。旧 cipher 只能提供较弱的机密性或完全不加密,因此默认不启用。
|
||
|
||
### data_ciphers_fallback
|
||
|
||
用于不支持 cipher 协商的对端的数据通道 cipher。
|
||
|
||
默认禁用。
|
||
|
||
仅在 TLS 模式下可用。
|
||
|
||
### auth
|
||
|
||
OpenVPN 数据通道认证摘要。
|
||
|
||
默认使用 `SHA1`,仅应用于非 AEAD 数据 cipher 和 `tls_auth`。
|
||
|
||
为兼容既有服务器,显式配置时仍可使用 `MD5` 和 `RIPEMD160` 等旧摘要。
|
||
|
||
### mss_fix
|
||
|
||
OpenVPN UDP packet 的最大大小,用于限制通过隧道发送的 TCP 连接 MSS。
|
||
|
||
这可以避免 TCP packet 在 OpenVPN 封装后超过 path MTU。
|
||
|
||
为空时使用上游 OpenVPN 默认值:配置了 `fragment` 时使用其值;否则默认 tunnel MTU 使用 `1492`,自定义 tunnel MTU 使用该 MTU。
|
||
|
||
### mss_fix_disabled
|
||
|
||
禁用 MSS 限制,包括默认限制。
|
||
|
||
与 `mss_fix` 和 `mss_fix_mode` 冲突。
|
||
|
||
### mss_fix_mode
|
||
|
||
显式 `mss_fix` 的 OpenVPN MSS 计算模式,`mtu` 或 `fixed` 之一。
|
||
|
||
空值使用普通的 OpenVPN 封装开销计算。`mtu` 还会计算外层 IP 和 UDP/TCP 传输头;`fixed` 将 `mss_fix` 视为内层 IPv4 数据包大小。
|
||
|
||
需要 `mss_fix`。
|
||
|
||
### fragment
|
||
|
||
用于 OpenVPN 数据通道 fragmentation 的最大 OpenVPN UDP packet 大小。
|
||
|
||
设为 `0` 时禁用。非零值必须至少为 `68`。
|
||
|
||
与 TCP 传输冲突。
|
||
|
||
### replay_window
|
||
|
||
UDP 数据通道重放窗口大小。默认使用 `64`,最大值为 `65536`。
|
||
|
||
TCP 始终要求数据包 ID 严格连续。
|
||
|
||
### replay_window_time
|
||
|
||
UDP 数据通道重放窗口时长。默认使用 `15s`,最大值为 `10m`。
|
||
|
||
该值必须使用整秒。
|
||
|
||
### compression
|
||
|
||
OpenVPN `compress` framing 模式,可选值为 `none`、`no`、`lz4`、`lz4-v2`、`stub`、`stub-v2`、`disabled` 或 `off`。
|
||
|
||
默认禁用。
|
||
|
||
Compression 可能削弱流量机密性。仅在需要 framing 兼容性时使用 `stub` 或 `stub-v2`。
|
||
|
||
### compression_lzo
|
||
|
||
OpenVPN `comp-lzo` 模式,可选值为 `none`、`no`、`yes`、`adaptive`、`asym`、`disabled` 或 `off`。
|
||
|
||
默认禁用。
|
||
|
||
Compression 可能削弱流量机密性。仅在服务器要求时启用。
|
||
|
||
### allow_compression
|
||
|
||
服务器推送的 compression 策略,可选值为 `no`、`asym` 或 `yes`。
|
||
|
||
默认使用 `no`,仅允许 compression stub framing。`asym` 接受来自服务器的 compressed packet,但不压缩出站 packet。为兼容 OpenVPN 2.7,`yes` 作为 `asym` 的旧别名接受;客户端绝不会发送 compressed packet。
|
||
|
||
当设为 `no` 时,与通过 `compression` 或 `compression_lzo` 启用的非 stub compression 冲突。
|
||
|
||
### route_no_pull
|
||
|
||
忽略服务器推送的 route、DNS 和 DHCP 设置、route metric、`redirect-gateway`、
|
||
`redirect-private`、`block-ipv6` 和 `block-outside-dns`。
|
||
|
||
仍会使用接口配置、topology、tunnel MTU、`route-gateway` 和本地配置的 route。
|
||
|
||
默认禁用。
|
||
|
||
### pull_filters
|
||
|
||
服务器推送选项的有序 pull filter 列表。
|
||
|
||
应用第一个 `text` 为完整推送选项大小写敏感前缀的 filter。未匹配任何 filter 的选项会被接受。
|
||
|
||
### pull_filters.action
|
||
|
||
==必填==
|
||
|
||
Filter action,可选值为 `accept`、`ignore` 或 `reject`。
|
||
|
||
`accept` 应用选项,`ignore` 丢弃选项,`reject` 终止连接。
|
||
|
||
### pull_filters.text
|
||
|
||
==必填==
|
||
|
||
用于匹配推送选项名称和值的大小写敏感前缀。
|
||
|
||
例如,`route ` 会匹配推送的 IPv4 route 选项,但不会匹配 `route-gateway`。
|
||
|
||
### routes
|
||
|
||
sing-box 路由优先选择此 OpenVPN endpoint 的 IPv4 和 IPv6 前缀。
|
||
|
||
这些 route 会与从服务器接受的 route 一起使用。
|
||
|
||
它们不会安装操作系统路由。请通过 sing-box 路由规则或 endpoint 的首选路由行为选择此 endpoint。
|
||
|
||
### route_gateway
|
||
|
||
通过 OpenVPN endpoint 路由的 IPv4 gateway。
|
||
|
||
为空时使用从服务器接收的 VPN gateway。
|
||
|
||
该值仅为兼容 OpenVPN 配置而保留;endpoint 的路由偏好只按前缀判断,不会安装系统 gateway 路由。
|
||
|
||
### route_metric
|
||
|
||
通过 OpenVPN endpoint 路由的默认 metric。
|
||
|
||
设为 `0` 时使用平台默认值。
|
||
|
||
该值仅为兼容 OpenVPN 配置而保留,不会安装系统路由。
|
||
|
||
### redirect_gateway
|
||
|
||
在 sing-box 路由中对所有 IPv4 目的地优先选择 OpenVPN endpoint。
|
||
|
||
默认禁用。
|
||
|
||
这不会安装操作系统默认路由。
|
||
|
||
### redirect_gateway_flags
|
||
|
||
OpenVPN `redirect-gateway` flag。
|
||
|
||
`!ipv4` 禁用 IPv4 偏好,`def1` 使用两个 `/1` 前缀表示,`ipv6` 还会优先选择上游特定的 IPv6 前缀。OpenVPN 控制连接始终使用其配置的出站拨号器,不经过 endpoint 路由,因此 `local` 和 `autolocal` 不需要系统路由例外。由于 sing-box 不会把推送的 DHCP 或 DNS 设置安装到操作系统,`bypass-dhcp` 和 `bypass-dns` 不适用。`block-local` 不受支持,因为 endpoint 没有可跨平台获取物理默认网关的来源,无法保留网关例外。
|
||
|
||
默认为空。
|
||
|
||
### redirect_private
|
||
|
||
接受 `redirect_gateway_flags`,但不添加默认路由偏好。单独推送或配置的路由仍会影响 endpoint 的首选地址,但不会安装操作系统路由。
|
||
|
||
默认禁用。
|
||
|
||
### block_ipv6
|
||
|
||
在本地拒绝 IPv6 流量,而不是通过 VPN 发送。
|
||
|
||
默认禁用。
|
||
|
||
### ping_interval
|
||
|
||
客户端未向服务器发送任何 packet 时,发送 data channel ping 的间隔。
|
||
|
||
服务器推送的 OpenVPN `ping` 值优先于该值。
|
||
|
||
该值必须使用整秒。
|
||
|
||
默认禁用。
|
||
|
||
### ping_restart
|
||
|
||
客户端未收到任何 packet 后重新连接服务器的时间。
|
||
|
||
服务器推送的 OpenVPN `ping-restart` 值优先于该值。
|
||
|
||
该值必须使用整秒。
|
||
|
||
为空时,启用了 pull 的 UDP 连接会使用 `120s`,直到服务器推送其他值。TCP 不使用默认接收超时。
|
||
|
||
### ping_restart_disabled
|
||
|
||
禁用初始 `120s` UDP 拉取超时和本地配置的 ping 重启超时。
|
||
|
||
与 `ping_restart` 冲突。
|
||
|
||
### renegotiate_interval
|
||
|
||
OpenVPN TLS 重新协商间隔。
|
||
|
||
为空时使用 OpenVPN 默认值 `1h`。
|
||
|
||
### renegotiate_disabled
|
||
|
||
禁用基于时间的 TLS 重新协商,包括默认间隔。
|
||
|
||
与 `renegotiate_interval` 冲突。
|
||
|
||
### renegotiate_bytes
|
||
|
||
传输指定字节数后重新协商数据通道密钥。`0` 使用与密码算法相关的 OpenVPN 默认值。
|
||
|
||
### renegotiate_packets
|
||
|
||
传输指定数据包数后重新协商数据通道密钥。`0` 使用与密码算法相关的 OpenVPN 默认值。
|
||
|
||
### tls_timeout
|
||
|
||
TLS 控制数据包的初始重传超时。为空时使用 OpenVPN 默认值 `2s`。
|
||
|
||
### handshake_window
|
||
|
||
初始 TLS 握手及每次重新协商的最长允许时间。为空时使用 OpenVPN 默认值 `1m`。
|
||
|
||
### explicit_exit_notify
|
||
|
||
关闭 UDP 连接时发送的 OpenVPN exit notification 数量。
|
||
|
||
Notification 之间间隔一秒。设为 `0` 时禁用。
|
||
|
||
### system
|
||
|
||
使用系统接口。
|
||
|
||
需要权限,且不能与现有系统接口冲突。
|
||
|
||
endpoint 会配置接口地址和 MTU,但不会安装操作系统路由或 DNS 设置。
|
||
|
||
禁用时,sing-box 使用内部网络栈。
|
||
|
||
### name
|
||
|
||
系统接口的自定义接口名称。
|
||
|
||
默认使用自动生成的 `ovpn` 接口名称。
|
||
|
||
### mtu
|
||
|
||
OpenVPN 接口 MTU。
|
||
|
||
为空时使用服务器推送的 MTU;收到服务器配置前使用 `1500`。
|
||
|
||
## UDP NAT 字段
|
||
|
||
参阅 [UDP NAT 字段](/zh/configuration/shared/udp-nat/)。
|
||
|
||
## 拨号字段
|
||
|
||
参阅[拨号字段](/zh/configuration/shared/dial/)。
|
||
|
||
## 交互式认证
|
||
|
||
在 sing-box dashboard 或任意 sing-box 图形客户端的 `工具` > `端点` 中认证和管理 endpoint。
|