mirror of
https://github.com/SagerNet/sing-box.git
synced 2024-11-25 10:01:30 +00:00
Update documentation
This commit is contained in:
parent
73267fd6ad
commit
b459001600
|
@ -24,7 +24,6 @@
|
||||||
|------------|-------------------------|
|
|------------|-------------------------|
|
||||||
| `geoip` | [GeoIP](./geoip) |
|
| `geoip` | [GeoIP](./geoip) |
|
||||||
| `geosite` | [GeoSite](./geosite) |
|
| `geosite` | [GeoSite](./geosite) |
|
||||||
| `ip_rules` | 一组 [IP 路由规则](./ip-rule) |
|
|
||||||
| `rules` | 一组 [路由规则](./rule) |
|
| `rules` | 一组 [路由规则](./rule) |
|
||||||
|
|
||||||
#### final
|
#### final
|
||||||
|
|
|
@ -1,205 +0,0 @@
|
||||||
### Structure
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"route": {
|
|
||||||
"ip_rules": [
|
|
||||||
{
|
|
||||||
"inbound": [
|
|
||||||
"mixed-in"
|
|
||||||
],
|
|
||||||
"ip_version": 6,
|
|
||||||
"network": [
|
|
||||||
"tcp"
|
|
||||||
],
|
|
||||||
"domain": [
|
|
||||||
"test.com"
|
|
||||||
],
|
|
||||||
"domain_suffix": [
|
|
||||||
".cn"
|
|
||||||
],
|
|
||||||
"domain_keyword": [
|
|
||||||
"test"
|
|
||||||
],
|
|
||||||
"domain_regex": [
|
|
||||||
"^stun\\..+"
|
|
||||||
],
|
|
||||||
"geosite": [
|
|
||||||
"cn"
|
|
||||||
],
|
|
||||||
"source_geoip": [
|
|
||||||
"private"
|
|
||||||
],
|
|
||||||
"geoip": [
|
|
||||||
"cn"
|
|
||||||
],
|
|
||||||
"source_ip_cidr": [
|
|
||||||
"10.0.0.0/24",
|
|
||||||
"192.168.0.1"
|
|
||||||
],
|
|
||||||
"ip_cidr": [
|
|
||||||
"10.0.0.0/24",
|
|
||||||
"192.168.0.1"
|
|
||||||
],
|
|
||||||
"source_port": [
|
|
||||||
12345
|
|
||||||
],
|
|
||||||
"source_port_range": [
|
|
||||||
"1000:2000",
|
|
||||||
":3000",
|
|
||||||
"4000:"
|
|
||||||
],
|
|
||||||
"port": [
|
|
||||||
80,
|
|
||||||
443
|
|
||||||
],
|
|
||||||
"port_range": [
|
|
||||||
"1000:2000",
|
|
||||||
":3000",
|
|
||||||
"4000:"
|
|
||||||
],
|
|
||||||
"invert": false,
|
|
||||||
"action": "direct",
|
|
||||||
"outbound": "wireguard"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "logical",
|
|
||||||
"mode": "and",
|
|
||||||
"rules": [],
|
|
||||||
"invert": false,
|
|
||||||
"action": "direct",
|
|
||||||
"outbound": "wireguard"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
!!! note ""
|
|
||||||
|
|
||||||
You can ignore the JSON Array [] tag when the content is only one item
|
|
||||||
|
|
||||||
### Default Fields
|
|
||||||
|
|
||||||
!!! note ""
|
|
||||||
|
|
||||||
The default rule uses the following matching logic:
|
|
||||||
(`domain` || `domain_suffix` || `domain_keyword` || `domain_regex` || `geosite` || `geoip` || `ip_cidr`) &&
|
|
||||||
(`port` || `port_range`) &&
|
|
||||||
(`source_geoip` || `source_ip_cidr`) &&
|
|
||||||
(`source_port` || `source_port_range`) &&
|
|
||||||
`other fields`
|
|
||||||
|
|
||||||
#### inbound
|
|
||||||
|
|
||||||
Tags of [Inbound](/configuration/inbound).
|
|
||||||
|
|
||||||
#### ip_version
|
|
||||||
|
|
||||||
4 or 6.
|
|
||||||
|
|
||||||
Not limited if empty.
|
|
||||||
|
|
||||||
#### network
|
|
||||||
|
|
||||||
Match network protocol.
|
|
||||||
|
|
||||||
Available values:
|
|
||||||
|
|
||||||
* `tcp`
|
|
||||||
* `udp`
|
|
||||||
* `icmpv4`
|
|
||||||
* `icmpv6`
|
|
||||||
|
|
||||||
#### domain
|
|
||||||
|
|
||||||
Match full domain.
|
|
||||||
|
|
||||||
#### domain_suffix
|
|
||||||
|
|
||||||
Match domain suffix.
|
|
||||||
|
|
||||||
#### domain_keyword
|
|
||||||
|
|
||||||
Match domain using keyword.
|
|
||||||
|
|
||||||
#### domain_regex
|
|
||||||
|
|
||||||
Match domain using regular expression.
|
|
||||||
|
|
||||||
#### geosite
|
|
||||||
|
|
||||||
Match geosite.
|
|
||||||
|
|
||||||
#### source_geoip
|
|
||||||
|
|
||||||
Match source geoip.
|
|
||||||
|
|
||||||
#### geoip
|
|
||||||
|
|
||||||
Match geoip.
|
|
||||||
|
|
||||||
#### source_ip_cidr
|
|
||||||
|
|
||||||
Match source ip cidr.
|
|
||||||
|
|
||||||
#### ip_cidr
|
|
||||||
|
|
||||||
Match ip cidr.
|
|
||||||
|
|
||||||
#### source_port
|
|
||||||
|
|
||||||
Match source port.
|
|
||||||
|
|
||||||
#### source_port_range
|
|
||||||
|
|
||||||
Match source port range.
|
|
||||||
|
|
||||||
#### port
|
|
||||||
|
|
||||||
Match port.
|
|
||||||
|
|
||||||
#### port_range
|
|
||||||
|
|
||||||
Match port range.
|
|
||||||
|
|
||||||
#### invert
|
|
||||||
|
|
||||||
Invert match result.
|
|
||||||
|
|
||||||
#### action
|
|
||||||
|
|
||||||
==Required==
|
|
||||||
|
|
||||||
| Action | Description |
|
|
||||||
|--------|--------------------------------------------------------------------|
|
|
||||||
| return | Stop IP routing and assemble the connection to the transport layer |
|
|
||||||
| block | Block the connection |
|
|
||||||
| direct | Directly forward the connection |
|
|
||||||
|
|
||||||
#### outbound
|
|
||||||
|
|
||||||
==Required if action is direct==
|
|
||||||
|
|
||||||
Tag of the target outbound.
|
|
||||||
|
|
||||||
Only outbound which supports IP connection can be used, see [Outbounds that support IP connection](/configuration/outbound/#outbounds-that-support-ip-connection).
|
|
||||||
|
|
||||||
### Logical Fields
|
|
||||||
|
|
||||||
#### type
|
|
||||||
|
|
||||||
`logical`
|
|
||||||
|
|
||||||
#### mode
|
|
||||||
|
|
||||||
==Required==
|
|
||||||
|
|
||||||
`and` or `or`
|
|
||||||
|
|
||||||
#### rules
|
|
||||||
|
|
||||||
==Required==
|
|
||||||
|
|
||||||
Included default rules.
|
|
|
@ -1,204 +0,0 @@
|
||||||
### 结构
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"route": {
|
|
||||||
"ip_rules": [
|
|
||||||
{
|
|
||||||
"inbound": [
|
|
||||||
"mixed-in"
|
|
||||||
],
|
|
||||||
"ip_version": 6,
|
|
||||||
"network": [
|
|
||||||
"tcp"
|
|
||||||
],
|
|
||||||
"domain": [
|
|
||||||
"test.com"
|
|
||||||
],
|
|
||||||
"domain_suffix": [
|
|
||||||
".cn"
|
|
||||||
],
|
|
||||||
"domain_keyword": [
|
|
||||||
"test"
|
|
||||||
],
|
|
||||||
"domain_regex": [
|
|
||||||
"^stun\\..+"
|
|
||||||
],
|
|
||||||
"geosite": [
|
|
||||||
"cn"
|
|
||||||
],
|
|
||||||
"source_geoip": [
|
|
||||||
"private"
|
|
||||||
],
|
|
||||||
"geoip": [
|
|
||||||
"cn"
|
|
||||||
],
|
|
||||||
"source_ip_cidr": [
|
|
||||||
"10.0.0.0/24",
|
|
||||||
"192.168.0.1"
|
|
||||||
],
|
|
||||||
"ip_cidr": [
|
|
||||||
"10.0.0.0/24",
|
|
||||||
"192.168.0.1"
|
|
||||||
],
|
|
||||||
"source_port": [
|
|
||||||
12345
|
|
||||||
],
|
|
||||||
"source_port_range": [
|
|
||||||
"1000:2000",
|
|
||||||
":3000",
|
|
||||||
"4000:"
|
|
||||||
],
|
|
||||||
"port": [
|
|
||||||
80,
|
|
||||||
443
|
|
||||||
],
|
|
||||||
"port_range": [
|
|
||||||
"1000:2000",
|
|
||||||
":3000",
|
|
||||||
"4000:"
|
|
||||||
],
|
|
||||||
"invert": false,
|
|
||||||
"action": "direct",
|
|
||||||
"outbound": "wireguard"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "logical",
|
|
||||||
"mode": "and",
|
|
||||||
"rules": [],
|
|
||||||
"invert": false,
|
|
||||||
"action": "direct",
|
|
||||||
"outbound": "wireguard"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
!!! note ""
|
|
||||||
|
|
||||||
当内容只有一项时,可以忽略 JSON 数组 [] 标签。
|
|
||||||
|
|
||||||
### Default Fields
|
|
||||||
|
|
||||||
!!! note ""
|
|
||||||
|
|
||||||
默认规则使用以下匹配逻辑:
|
|
||||||
(`domain` || `domain_suffix` || `domain_keyword` || `domain_regex` || `geosite` || `geoip` || `ip_cidr`) &&
|
|
||||||
(`port` || `port_range`) &&
|
|
||||||
(`source_geoip` || `source_ip_cidr`) &&
|
|
||||||
(`source_port` || `source_port_range`) &&
|
|
||||||
`other fields`
|
|
||||||
|
|
||||||
#### inbound
|
|
||||||
|
|
||||||
[入站](/zh/configuration/inbound) 标签。
|
|
||||||
|
|
||||||
#### ip_version
|
|
||||||
|
|
||||||
4 或 6。
|
|
||||||
|
|
||||||
默认不限制。
|
|
||||||
|
|
||||||
#### network
|
|
||||||
|
|
||||||
匹配网络协议。
|
|
||||||
|
|
||||||
可用值:
|
|
||||||
|
|
||||||
* `tcp`
|
|
||||||
* `udp`
|
|
||||||
* `icmpv4`
|
|
||||||
* `icmpv6`
|
|
||||||
|
|
||||||
#### domain
|
|
||||||
|
|
||||||
匹配完整域名。
|
|
||||||
|
|
||||||
#### domain_suffix
|
|
||||||
|
|
||||||
匹配域名后缀。
|
|
||||||
|
|
||||||
#### domain_keyword
|
|
||||||
|
|
||||||
匹配域名关键字。
|
|
||||||
|
|
||||||
#### domain_regex
|
|
||||||
|
|
||||||
匹配域名正则表达式。
|
|
||||||
|
|
||||||
#### geosite
|
|
||||||
|
|
||||||
匹配 GeoSite。
|
|
||||||
|
|
||||||
#### source_geoip
|
|
||||||
|
|
||||||
匹配源 GeoIP。
|
|
||||||
|
|
||||||
#### geoip
|
|
||||||
|
|
||||||
匹配 GeoIP。
|
|
||||||
|
|
||||||
#### source_ip_cidr
|
|
||||||
|
|
||||||
匹配源 IP CIDR。
|
|
||||||
|
|
||||||
#### ip_cidr
|
|
||||||
|
|
||||||
匹配 IP CIDR。
|
|
||||||
|
|
||||||
#### source_port
|
|
||||||
|
|
||||||
匹配源端口。
|
|
||||||
|
|
||||||
#### source_port_range
|
|
||||||
|
|
||||||
匹配源端口范围。
|
|
||||||
|
|
||||||
#### port
|
|
||||||
|
|
||||||
匹配端口。
|
|
||||||
|
|
||||||
#### port_range
|
|
||||||
|
|
||||||
匹配端口范围。
|
|
||||||
|
|
||||||
#### invert
|
|
||||||
|
|
||||||
反选匹配结果。
|
|
||||||
|
|
||||||
#### action
|
|
||||||
|
|
||||||
==必填==
|
|
||||||
|
|
||||||
| Action | 描述 |
|
|
||||||
|--------|---------------------|
|
|
||||||
| return | 停止 IP 路由并将该连接组装到传输层 |
|
|
||||||
| block | 屏蔽该连接 |
|
|
||||||
| direct | 直接转发该连接 |
|
|
||||||
|
|
||||||
|
|
||||||
#### outbound
|
|
||||||
|
|
||||||
==action 为 direct 则必填==
|
|
||||||
|
|
||||||
目标出站的标签。
|
|
||||||
|
|
||||||
### 逻辑字段
|
|
||||||
|
|
||||||
#### type
|
|
||||||
|
|
||||||
`logical`
|
|
||||||
|
|
||||||
#### mode
|
|
||||||
|
|
||||||
==必填==
|
|
||||||
|
|
||||||
`and` 或 `or`
|
|
||||||
|
|
||||||
#### rules
|
|
||||||
|
|
||||||
==必填==
|
|
||||||
|
|
||||||
包括的默认规则。
|
|
|
@ -8,5 +8,4 @@ Configuration examples for sing-box.
|
||||||
* [Shadowsocks](./shadowsocks)
|
* [Shadowsocks](./shadowsocks)
|
||||||
* [ShadowTLS](./shadowtls)
|
* [ShadowTLS](./shadowtls)
|
||||||
* [Clash API](./clash-api)
|
* [Clash API](./clash-api)
|
||||||
* [WireGuard Direct](./wireguard-direct)
|
|
||||||
* [FakeIP](./fakeip)
|
* [FakeIP](./fakeip)
|
||||||
|
|
|
@ -8,5 +8,4 @@ sing-box 的配置示例。
|
||||||
* [Shadowsocks](./shadowsocks)
|
* [Shadowsocks](./shadowsocks)
|
||||||
* [ShadowTLS](./shadowtls)
|
* [ShadowTLS](./shadowtls)
|
||||||
* [Clash API](./clash-api)
|
* [Clash API](./clash-api)
|
||||||
* [WireGuard Direct](./wireguard-direct)
|
|
||||||
* [FakeIP](./fakeip)
|
* [FakeIP](./fakeip)
|
||||||
|
|
|
@ -1,90 +0,0 @@
|
||||||
# WireGuard Direct
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"dns": {
|
|
||||||
"servers": [
|
|
||||||
{
|
|
||||||
"tag": "google",
|
|
||||||
"address": "tls://8.8.8.8"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"tag": "local",
|
|
||||||
"address": "223.5.5.5",
|
|
||||||
"detour": "direct"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"rules": [
|
|
||||||
{
|
|
||||||
"geoip": "cn",
|
|
||||||
"server": "direct"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"reverse_mapping": true
|
|
||||||
},
|
|
||||||
"inbounds": [
|
|
||||||
{
|
|
||||||
"type": "tun",
|
|
||||||
"tag": "tun",
|
|
||||||
"inet4_address": "172.19.0.1/30",
|
|
||||||
"auto_route": true,
|
|
||||||
"sniff": true,
|
|
||||||
"stack": "system"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"outbounds": [
|
|
||||||
{
|
|
||||||
"type": "wireguard",
|
|
||||||
"tag": "wg",
|
|
||||||
"server": "127.0.0.1",
|
|
||||||
"server_port": 2345,
|
|
||||||
"local_address": [
|
|
||||||
"172.19.0.1/128"
|
|
||||||
],
|
|
||||||
"private_key": "KLTnpPY03pig/WC3zR8U7VWmpANHPFh2/4pwICGJ5Fk=",
|
|
||||||
"peer_public_key": "uvNabcamf6Rs0vzmcw99jsjTJbxo6eWGOykSY66zsUk="
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "dns",
|
|
||||||
"tag": "dns"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "direct",
|
|
||||||
"tag": "direct"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "block",
|
|
||||||
"tag": "block"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"route": {
|
|
||||||
"ip_rules": [
|
|
||||||
{
|
|
||||||
"port": 53,
|
|
||||||
"action": "return"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"geoip": "cn",
|
|
||||||
"geosite": "cn",
|
|
||||||
"action": "return"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"action": "direct",
|
|
||||||
"outbound": "wg"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"rules": [
|
|
||||||
{
|
|
||||||
"protocol": "dns",
|
|
||||||
"outbound": "dns"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"geoip": "cn",
|
|
||||||
"geosite": "cn",
|
|
||||||
"outbound": "direct"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"auto_detect_interface": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
|
@ -9,7 +9,7 @@ Experimental Android client for sing-box.
|
||||||
#### Download
|
#### Download
|
||||||
|
|
||||||
* [AppCenter](https://install.appcenter.ms/users/nekohasekai/apps/sfa/distribution_groups/publictest)
|
* [AppCenter](https://install.appcenter.ms/users/nekohasekai/apps/sfa/distribution_groups/publictest)
|
||||||
* [Github Releases](https://SagerNet/sing-box/releases)
|
* [Github Releases](https://github.com/SagerNet/sing-box/releases)
|
||||||
|
|
||||||
#### Note
|
#### Note
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
#### 下载
|
#### 下载
|
||||||
|
|
||||||
* [AppCenter](https://install.appcenter.ms/users/nekohasekai/apps/sfa/distribution_groups/publictest)
|
* [AppCenter](https://install.appcenter.ms/users/nekohasekai/apps/sfa/distribution_groups/publictest)
|
||||||
* [Github Releases](https://SagerNet/sing-box/releases)
|
* [Github Releases](https://github.com/SagerNet/sing-box/releases)
|
||||||
|
|
||||||
#### 注意事项
|
#### 注意事项
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,17 @@
|
||||||
# Install from source
|
# Install from source
|
||||||
|
|
||||||
sing-box requires Golang **1.18.5** or a higher version.
|
## Requirements
|
||||||
|
|
||||||
|
Before sing-box 1.4.0:
|
||||||
|
|
||||||
|
* Go 1.18.5 - 1.20.x
|
||||||
|
|
||||||
|
Since sing-box 1.4.0:
|
||||||
|
|
||||||
|
* Go 1.18.5 - ~
|
||||||
|
* Go 1.20.0 - ~ if `with_quic` tag enabled
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
go install -v github.com/sagernet/sing-box/cmd/sing-box@latest
|
go install -v github.com/sagernet/sing-box/cmd/sing-box@latest
|
||||||
|
@ -9,7 +20,7 @@ go install -v github.com/sagernet/sing-box/cmd/sing-box@latest
|
||||||
Install with options:
|
Install with options:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
go install -v -tags with_clash_api github.com/sagernet/sing-box/cmd/sing-box@latest
|
go install -v -tags with_quic,with_wireguard github.com/sagernet/sing-box/cmd/sing-box@latest
|
||||||
```
|
```
|
||||||
|
|
||||||
| Build Tag | Description |
|
| Build Tag | Description |
|
||||||
|
|
|
@ -86,6 +86,7 @@ nav:
|
||||||
- Hysteria: configuration/inbound/hysteria.md
|
- Hysteria: configuration/inbound/hysteria.md
|
||||||
- ShadowTLS: configuration/inbound/shadowtls.md
|
- ShadowTLS: configuration/inbound/shadowtls.md
|
||||||
- VLESS: configuration/inbound/vless.md
|
- VLESS: configuration/inbound/vless.md
|
||||||
|
- TUIC: configuration/inbound/tuic.md
|
||||||
- Tun: configuration/inbound/tun.md
|
- Tun: configuration/inbound/tun.md
|
||||||
- Redirect: configuration/inbound/redirect.md
|
- Redirect: configuration/inbound/redirect.md
|
||||||
- TProxy: configuration/inbound/tproxy.md
|
- TProxy: configuration/inbound/tproxy.md
|
||||||
|
@ -103,6 +104,7 @@ nav:
|
||||||
- ShadowTLS: configuration/outbound/shadowtls.md
|
- ShadowTLS: configuration/outbound/shadowtls.md
|
||||||
- ShadowsocksR: configuration/outbound/shadowsocksr.md
|
- ShadowsocksR: configuration/outbound/shadowsocksr.md
|
||||||
- VLESS: configuration/outbound/vless.md
|
- VLESS: configuration/outbound/vless.md
|
||||||
|
- TUIC: configuration/outbound/tuic.md
|
||||||
- Tor: configuration/outbound/tor.md
|
- Tor: configuration/outbound/tor.md
|
||||||
- SSH: configuration/outbound/ssh.md
|
- SSH: configuration/outbound/ssh.md
|
||||||
- DNS: configuration/outbound/dns.md
|
- DNS: configuration/outbound/dns.md
|
||||||
|
@ -120,7 +122,6 @@ nav:
|
||||||
- Shadowsocks: examples/shadowsocks.md
|
- Shadowsocks: examples/shadowsocks.md
|
||||||
- ShadowTLS: examples/shadowtls.md
|
- ShadowTLS: examples/shadowtls.md
|
||||||
- Clash API: examples/clash-api.md
|
- Clash API: examples/clash-api.md
|
||||||
- WireGuard Direct: examples/wireguard-direct.md
|
|
||||||
- FakeIP: examples/fakeip.md
|
- FakeIP: examples/fakeip.md
|
||||||
- Contributing:
|
- Contributing:
|
||||||
- contributing/index.md
|
- contributing/index.md
|
||||||
|
|
Loading…
Reference in a new issue