入站
inbounds 是监听服务的数组。与 Xray-core 不同,这里没有嵌套的 settings 块:每个条目都是扁平对象 — 下面的 type / tag 信封加上所选类型自身的字段,合并在同一层级。先解码信封,再把剩余键解码到为 type 注册的选项结构体中,未知字段会被拒绝。
信封
| 字段 | 类型 | 默认值 | 允许值 | 描述 |
|---|---|---|---|---|
type | string | — | tun | redirect | tproxy | direct | socks | http | mixed | shadowsocks | vmess | trojan | naive | shadowtls | vless | anytls | hysteria | tuic | hysteria2 | 入站类型。决定对象其余部分解码到哪个选项结构体。未注册的值会在启动时报 "unknown inbound type"。 |
tag | string | — | — | 该入站的唯一名称。被路由规则(inbound)与日志行引用。 |
源码: option/inbound.go:18-22 · 锚定版本 v1.13.15 (3708fa1)
各类型字段见协议页面:TUN、Redirect 与 TProxy、Direct、HTTP 与 SOCKS(含 mixed)、Shadowsocks、VMess、Trojan、Naive、VLESS、AnyTLS、Hysteria2、TUIC。
共享监听字段(ListenOptions)
每个基于套接字的入站都内嵌 ListenOptions;这些字段与信封处于同一扁平层级。
| 字段 | 类型 | 默认值 | 允许值 | 描述 |
|---|---|---|---|---|
listen | *badoption.Addr | — | — | 绑定地址,如 "::" 或 "127.0.0.1"。 |
listen_port | uint16 | — | — | 监听端口。 |
bind_interface | string | — | — | 监听器绑定的网络接口。 |
routing_mark | FwMark | — | — | 在监听套接字上设置的 SO_MARK(fwmark)。仅 Linux。 |
reuse_addr | bool | false | true | false | 在监听器上设置 SO_REUSEADDR。 |
netns | string | — | — | 监听所在的网络命名空间(名称或路径)。仅 Linux。 |
disable_tcp_keep_alive | bool | false | true | false | 对已接受的连接关闭 TCP keep-alive。 |
tcp_keep_alive | badoption.Duration | — | — | 开始发送探测前的 keep-alive 空闲时长。时长字符串,如 "15m"。 |
tcp_keep_alive_interval | badoption.Duration | — | — | keep-alive 探测之间的间隔。时长字符串。 |
tcp_fast_open | bool | false | true | false | 在监听器上启用 TCP Fast Open。 |
tcp_multi_path | bool | false | true | false | 启用 Multipath TCP(需要平台上的 Go MPTCP 支持)。 |
udp_fragment | *bool | false | true | false | 允许分片超过 MTU 的 UDP 数据包,而不是丢弃。 |
udp_timeout | UDPTimeoutCompat | — | — | UDP NAT 表项的空闲超时。时长字符串;实际默认值取决于嗅探到的协议。 |
detour | string | — | — | 把已接受的连接直接转入另一个入站(按其 tag 寻址)。 |
proxy_protocol | bool | — | — | 已废弃并移除:PROXY protocol 头支持已不存在;设置它会报错。 |
proxy_protocol_accept_no_header | bool | — | — | 与 proxy_protocol 一同废弃并移除。 |
源码: option/inbound.go:66-88 · 锚定版本 v1.13.15 (3708fa1)
最简示例
json
{
"inbounds": [
{
"type": "mixed",
"tag": "mixed-in",
"listen": "127.0.0.1",
"listen_port": 2080
}
]
}说明
- 严格反序列化同样作用于入站条目内部:任何字段名拼写错误都是启动错误,不会被静默忽略。
- 旧版嗅探字段(
sniff、sniff_override_destination、sniff_timeout、domain_strategy、udp_disable_domain_unmapping)在 1.11.0 废弃并在 1.13.0 移除 — 提供它们会报错并指向 rule actions 迁移文档。嗅探现在位于路由规则中。 shadowsocksr仍被注册,但只是一个报错的占位:ShadowsocksR 支持已在 sing-box 1.6.0 移除。hysteria、tuic、hysteria2需要带with_quic标签的构建(官方发布的二进制包含它)。
跨内核说明
- Xray-core 把协议字段嵌套在
settings对象中,嗅探按入站配置。见 Xray 入站。 - mihomo 使用独立的根键(
port、socks-port、mixed-port…)加上listeners列表。见 HTTP 与 SOCKS 和 Redirect 与 TProxy。
源码: option/inbound.go:18-22 · v1.13.15 (3708fa1)
