Direct
sing-box 1.11.0 中的更改
direct 出站直接发送请求。
结构
{
"type": "direct",
"tag": "direct-out",
"override_address": "1.0.0.1",
"override_port": 53,
"use_origin_dst": false,
"xlat464_prefix": "",
... // 拨号字段
}
Fork 专用拨号字段
字段
override_address
已在 sing-box 1.11.0 废弃
目标覆盖字段在 sing-box 1.11.0 中已废弃,并将在 sing-box 1.13.0 中被移除,参阅 迁移指南。
覆盖连接目标地址。
override_port
已在 sing-box 1.11.0 废弃
目标覆盖字段在 sing-box 1.11.0 中已废弃,并将在 sing-box 1.13.0 中被移除,参阅 迁移指南。
覆盖连接目标端口。
use_origin_dst
使用通过 SO_ORIGINAL_DST(Linux 透明代理)获取的原始目标地址,而非连接的表观目标地址。
当连接被 iptables/nftables REDIRECT 或 TPROXY 重定向时使用,使 direct 出站转发至重定向前的原始目标,而非本地监听地址。
xlat464_prefix
464XLAT(CLAT)前缀,用于合成 IPv4 映射的 IPv6 地址(RFC 6052)。必须为 /96 前缀。
设置后,IPv4 目标地址将通过嵌入此前缀转换为 IPv6 地址,从而在纯 IPv6 网络上实现 IPv4 连接。
示例:"64:ff9b::/96"(众所周知的 NAT64 前缀)
ipv6_source_address_range
这是 Fork 专用拨号字段。
在直连拨号 IPv6 目标时,从该 CIDR 前缀中选择源 IPv6 地址。
配置后,sing-box 会为出站 IPv6 连接从指定前缀中选择一个 IPv6 源地址。这适用于:
- IPv6 地址隔离和追踪
- 每个用户 IPv6 源地址分配(与
hash_rid模式配合使用) - 符合 IPv6 前缀委托场景要求
接受的前缀长度范围为 /0 到 /64。
示例:"fd00:1234:5678::/48" - 使用此 ULA 前缀中的地址
如果源地址选择失败,sing-box 会记录回退警告并继续使用普通直连拨号行为。
ipv6_source_address_mode
这是 Fork 专用拨号字段。
ipv6_source_address_range 的选择模式。
| 模式 | 描述 |
|---|---|
random(默认) |
每次连接随机从地址池中选择一个地址 |
hash_5tuple |
根据入站 5 元组(网络、源 IP、源端口、目标 IP、目标端口)进行哈希,为每个连接流提供稳定的源地址 |
hash_rid |
根据连接的 Resource ID(来自 JWT 身份验证)为每个用户分配稳定的源地址 |
hash_rid 模式
当使用 mixed 入站 JWT 身份验证时,hash_rid 模式会根据用户的 Resource ID(rid 声明)为每个认证用户分配一个一致的 IPv6 源地址。
这实现了: - 跨连接的每个用户稳定 IPv6 地址 - 基于 IPv6 的用户识别和追踪 - 符合 IPv6 前缀委托要求
如果没有可用的 Resource ID(未认证连接),sing-box 会记录回退警告并继续使用普通直连拨号行为。
配置示例:
{
"outbounds": [
{
"type": "direct",
"tag": "direct",
"ipv6_source_address_range": "fd00:cafe:babe::/48",
"ipv6_source_address_mode": "hash_rid"
}
]
}
拨号字段
参阅 拨号字段。