diff --git a/docs/configuration/route/index.zh.md b/docs/configuration/route/index.zh.md index 8525f7b0..c05bb2e1 100644 --- a/docs/configuration/route/index.zh.md +++ b/docs/configuration/route/index.zh.md @@ -24,7 +24,6 @@ |------------|-------------------------| | `geoip` | [GeoIP](./geoip) | | `geosite` | [GeoSite](./geosite) | -| `ip_rules` | 一组 [IP 路由规则](./ip-rule) | | `rules` | 一组 [路由规则](./rule) | #### final diff --git a/docs/configuration/route/ip-rule.md b/docs/configuration/route/ip-rule.md deleted file mode 100644 index 352c39f8..00000000 --- a/docs/configuration/route/ip-rule.md +++ /dev/null @@ -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. \ No newline at end of file diff --git a/docs/configuration/route/ip-rule.zh.md b/docs/configuration/route/ip-rule.zh.md deleted file mode 100644 index d580086c..00000000 --- a/docs/configuration/route/ip-rule.zh.md +++ /dev/null @@ -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 - -==必填== - -包括的默认规则。 \ No newline at end of file diff --git a/docs/examples/index.md b/docs/examples/index.md index c39a7f32..6bbab741 100644 --- a/docs/examples/index.md +++ b/docs/examples/index.md @@ -8,5 +8,4 @@ Configuration examples for sing-box. * [Shadowsocks](./shadowsocks) * [ShadowTLS](./shadowtls) * [Clash API](./clash-api) -* [WireGuard Direct](./wireguard-direct) * [FakeIP](./fakeip) diff --git a/docs/examples/index.zh.md b/docs/examples/index.zh.md index 2dd801ec..7528e5d4 100644 --- a/docs/examples/index.zh.md +++ b/docs/examples/index.zh.md @@ -8,5 +8,4 @@ sing-box 的配置示例。 * [Shadowsocks](./shadowsocks) * [ShadowTLS](./shadowtls) * [Clash API](./clash-api) -* [WireGuard Direct](./wireguard-direct) * [FakeIP](./fakeip) diff --git a/docs/examples/wireguard-direct.md b/docs/examples/wireguard-direct.md deleted file mode 100644 index 98e5d575..00000000 --- a/docs/examples/wireguard-direct.md +++ /dev/null @@ -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 - } -} -``` \ No newline at end of file diff --git a/docs/installation/clients/sfa.md b/docs/installation/clients/sfa.md index 9ad88b00..2ec79ec1 100644 --- a/docs/installation/clients/sfa.md +++ b/docs/installation/clients/sfa.md @@ -9,7 +9,7 @@ Experimental Android client for sing-box. #### Download * [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 diff --git a/docs/installation/clients/sfa.zh.md b/docs/installation/clients/sfa.zh.md index 1383576e..fa005f11 100644 --- a/docs/installation/clients/sfa.zh.md +++ b/docs/installation/clients/sfa.zh.md @@ -9,7 +9,7 @@ #### 下载 * [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) #### 注意事项 diff --git a/docs/installation/from-source.md b/docs/installation/from-source.md index 5ab46bbb..da0ffc02 100644 --- a/docs/installation/from-source.md +++ b/docs/installation/from-source.md @@ -1,6 +1,17 @@ # 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 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: ```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 | diff --git a/mkdocs.yml b/mkdocs.yml index f9fc7179..93dfc972 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -86,6 +86,7 @@ nav: - Hysteria: configuration/inbound/hysteria.md - ShadowTLS: configuration/inbound/shadowtls.md - VLESS: configuration/inbound/vless.md + - TUIC: configuration/inbound/tuic.md - Tun: configuration/inbound/tun.md - Redirect: configuration/inbound/redirect.md - TProxy: configuration/inbound/tproxy.md @@ -103,6 +104,7 @@ nav: - ShadowTLS: configuration/outbound/shadowtls.md - ShadowsocksR: configuration/outbound/shadowsocksr.md - VLESS: configuration/outbound/vless.md + - TUIC: configuration/outbound/tuic.md - Tor: configuration/outbound/tor.md - SSH: configuration/outbound/ssh.md - DNS: configuration/outbound/dns.md @@ -120,7 +122,6 @@ nav: - Shadowsocks: examples/shadowsocks.md - ShadowTLS: examples/shadowtls.md - Clash API: examples/clash-api.md - - WireGuard Direct: examples/wireguard-direct.md - FakeIP: examples/fakeip.md - Contributing: - contributing/index.md