2022-07-08 18:10:39 +08:00
|
|
|
### Structure
|
|
|
|
|
|
|
|
```json
|
|
|
|
{
|
2022-08-31 12:50:26 +08:00
|
|
|
"type": "shadowsocks",
|
|
|
|
"tag": "ss-in",
|
|
|
|
|
|
|
|
... // Listen Fields
|
|
|
|
|
|
|
|
"method": "2022-blake3-aes-128-gcm",
|
|
|
|
"password": "8JCsPssfgS8tiRwiMlhARg=="
|
2022-07-08 18:10:39 +08:00
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2022-08-23 23:15:56 +08:00
|
|
|
### Multi-User Structure
|
|
|
|
|
|
|
|
```json
|
|
|
|
{
|
2022-08-31 12:50:26 +08:00
|
|
|
"method": "2022-blake3-aes-128-gcm",
|
|
|
|
"password": "8JCsPssfgS8tiRwiMlhARg==",
|
|
|
|
"users": [
|
2022-08-23 23:15:56 +08:00
|
|
|
{
|
2022-08-31 12:50:26 +08:00
|
|
|
"name": "sekai",
|
|
|
|
"password": "PCD2Z4o12bKUoFa3cC97Hw=="
|
2022-08-23 23:15:56 +08:00
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
### Relay Structure
|
|
|
|
|
|
|
|
```json
|
|
|
|
{
|
2022-08-31 12:50:26 +08:00
|
|
|
"type": "shadowsocks",
|
|
|
|
"method": "2022-blake3-aes-128-gcm",
|
|
|
|
"password": "8JCsPssfgS8tiRwiMlhARg==",
|
|
|
|
"destinations": [
|
2022-08-23 23:15:56 +08:00
|
|
|
{
|
2022-08-31 12:50:26 +08:00
|
|
|
"name": "test",
|
|
|
|
"server": "example.com",
|
|
|
|
"server_port": 8080,
|
|
|
|
"password": "PCD2Z4o12bKUoFa3cC97Hw=="
|
2022-08-23 23:15:56 +08:00
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2022-08-31 12:50:26 +08:00
|
|
|
### Listen Fields
|
|
|
|
|
|
|
|
See [Listen Fields](/configuration/shared/listen) for details.
|
|
|
|
|
|
|
|
### Fields
|
2022-08-23 23:15:56 +08:00
|
|
|
|
|
|
|
#### network
|
|
|
|
|
|
|
|
Listen network, one of `tcp` `udp`.
|
|
|
|
|
|
|
|
Both if empty.
|
|
|
|
|
|
|
|
#### method
|
|
|
|
|
|
|
|
==Required==
|
|
|
|
|
|
|
|
| Method | Key Length |
|
|
|
|
|-------------------------------|------------|
|
|
|
|
| 2022-blake3-aes-128-gcm | 16 |
|
|
|
|
| 2022-blake3-aes-256-gcm | 32 |
|
|
|
|
| 2022-blake3-chacha20-poly1305 | 32 |
|
|
|
|
| none | / |
|
|
|
|
| aes-128-gcm | / |
|
|
|
|
| aes-192-gcm | / |
|
|
|
|
| aes-256-gcm | / |
|
|
|
|
| chacha20-ietf-poly1305 | / |
|
|
|
|
| xchacha20-ietf-poly1305 | / |
|
|
|
|
|
|
|
|
#### password
|
|
|
|
|
|
|
|
==Required==
|
|
|
|
|
2023-03-05 10:50:51 +08:00
|
|
|
| Method | Password Format |
|
|
|
|
|---------------|------------------------------------------------|
|
|
|
|
| none | / |
|
|
|
|
| 2022 methods | `sing-box generate rand --base64 <Key Length>` |
|
|
|
|
| other methods | any string |
|
2022-08-23 23:15:56 +08:00
|
|
|
|
2022-07-08 18:10:39 +08:00
|
|
|
### Listen Fields
|
|
|
|
|
|
|
|
#### listen
|
|
|
|
|
2022-07-09 09:26:50 +08:00
|
|
|
==Required==
|
|
|
|
|
2022-07-08 18:10:39 +08:00
|
|
|
Listen address.
|
|
|
|
|
|
|
|
#### listen_port
|
|
|
|
|
2022-07-09 09:26:50 +08:00
|
|
|
==Required==
|
|
|
|
|
2022-07-08 18:10:39 +08:00
|
|
|
Listen port.
|
|
|
|
|
|
|
|
#### tcp_fast_open
|
|
|
|
|
|
|
|
Enable tcp fast open for listener.
|
|
|
|
|
|
|
|
#### sniff
|
|
|
|
|
|
|
|
Enable sniffing.
|
|
|
|
|
2022-08-24 18:43:39 +08:00
|
|
|
See [Protocol Sniff](/configuration/route/sniff/) for details.
|
2022-07-08 18:10:39 +08:00
|
|
|
|
|
|
|
#### sniff_override_destination
|
|
|
|
|
|
|
|
Override the connection destination address with the sniffed domain.
|
|
|
|
|
|
|
|
If the domain name is invalid (like tor), this will not work.
|
|
|
|
|
|
|
|
#### domain_strategy
|
|
|
|
|
|
|
|
One of `prefer_ipv4` `prefer_ipv6` `ipv4_only` `ipv6_only`.
|
|
|
|
|
|
|
|
If set, the requested domain name will be resolved to IP before routing.
|
|
|
|
|
|
|
|
If `sniff_override_destination` is in effect, its value will be taken as a fallback.
|
|
|
|
|
|
|
|
#### udp_timeout
|
|
|
|
|
|
|
|
UDP NAT expiration time in seconds, default is 300 (5 minutes).
|
|
|
|
|
2022-08-23 23:15:56 +08:00
|
|
|
#### proxy_protocol
|
2022-07-08 18:10:39 +08:00
|
|
|
|
2022-08-23 23:15:56 +08:00
|
|
|
Parse [Proxy Protocol](https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt) in the connection header.
|