mirror of
https://github.com/XTLS/Xray-examples.git
synced 2024-11-27 11:01:27 +00:00
d35c6f5aaa
Update vmess_ws_tls.json comment translate Update vmess_tcp_tls.json comment translate Update vless_ws_tls.json comment trnslate Update vless_tcp_xtls.json comment translate Update vless_tcp_tls.json comment translate Update trojan_tcp_tls.json comment translate Create README.ENG.md Update README.md add link README.ENG.md Update README.md add link README.ENG.md Create README.ENG.md Update README.md add link README.ENG.md Create README.ENG.md Update client.json comment transalate Update server.json comment translate Update README.md add english translate Update README.md add english link Create README.ENG.md Update Caddyfile comment translate Update client.json comment translate Update server.json comment translate Update README.md add link README.ENG.md Create RREADME.ENG.md Update config_client_tcp_tls.json translate comment Update config_client_ws_tls.json translate comment Update config_server.json comment translate Update README.md add link README.ENG.md Create README.ENG.md Update config_client.json comment translate Update config_server.json comment translate Update client.json translate comment Update server.json translate comment Update README.md add link README.ENG.md Create README.ENG.md Update server.json translate comment Update README.md add link README.ENG.md Update README.md Create README.ENG.md Co-authored-by: lk29 <12291632+lk29@users.noreply.github.com>
240 lines
4 KiB
Markdown
240 lines
4 KiB
Markdown
#Shadowsocks2022
|
|
|
|
Server-side JSON
|
|
|
|
```json
|
|
{
|
|
"inbounds": [
|
|
{
|
|
"port": 1234,
|
|
"protocol": "shadowsocks",
|
|
"settings": {
|
|
"method": "2022-blake3-aes-128-gcm",
|
|
"password": "{{ psk }}",
|
|
"network": "tcp,udp"
|
|
}
|
|
}
|
|
],
|
|
"outbounds": [
|
|
{
|
|
"protocol": "freedom"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
Server-side JSON (multi-user)
|
|
|
|
```json
|
|
{
|
|
"inbounds": [
|
|
{
|
|
"port": 1234,
|
|
"protocol": "shadowsocks",
|
|
"settings": {
|
|
"method": "2022-blake3-aes-128-gcm",
|
|
"password": "{{ server psk }}",
|
|
"clients": [
|
|
{
|
|
"password": "{{ user psk }}",
|
|
"email": "my user"
|
|
}
|
|
],
|
|
"network": "tcp,udp"
|
|
}
|
|
}
|
|
],
|
|
"outbounds": [
|
|
{
|
|
"protocol": "freedom"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
Server-side JSON (transit)
|
|
|
|
```json
|
|
{
|
|
"inbounds": [
|
|
{
|
|
"port": 1234,
|
|
"protocol": "shadowsocks",
|
|
"settings": {
|
|
"method": "2022-blake3-aes-128-gcm",
|
|
"password": "{{ relay psk }}",
|
|
"clients": [
|
|
{
|
|
"address": "server",
|
|
"port": 1234,
|
|
"password": "{{ server/user psk }}",
|
|
"email": "my server"
|
|
}
|
|
],
|
|
"network": "tcp,udp"
|
|
}
|
|
}
|
|
],
|
|
"outbounds": [
|
|
{
|
|
"protocol": "freedom"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
Client JSON
|
|
|
|
```json
|
|
{
|
|
"inbounds": [
|
|
{
|
|
"port": 10801,
|
|
"protocol": "socks",
|
|
"settings": {
|
|
"udp": true
|
|
}
|
|
},
|
|
{
|
|
"port": 10802,
|
|
"protocol": "http"
|
|
}
|
|
],
|
|
"outbounds": [
|
|
{
|
|
"protocol": "shadowsocks",
|
|
"settings": {
|
|
"servers": [
|
|
{
|
|
"address": "{{ host }}",
|
|
"port": 1234,
|
|
"method": "2022-blake3-aes-128-gcm",
|
|
"password": "{{ psk }}"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
Client JSON (UDP over TCP)
|
|
|
|
```json
|
|
{
|
|
"inbounds": [
|
|
{
|
|
"port": 10801,
|
|
"protocol": "socks",
|
|
"settings": {
|
|
"udp": true
|
|
}
|
|
},
|
|
{
|
|
"port": 10802,
|
|
"protocol": "http"
|
|
}
|
|
],
|
|
"outbounds": [
|
|
{
|
|
"protocol": "shadowsocks",
|
|
"settings": {
|
|
"servers": [
|
|
{
|
|
"address": "{{ host }}",
|
|
"port": 1234,
|
|
"method": "2022-blake3-aes-128-gcm",
|
|
"password": "{{ psk }}",
|
|
"uot": true
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
Client JSON (multi-user)
|
|
|
|
```json
|
|
{
|
|
"inbounds": [
|
|
{
|
|
"port": 10801,
|
|
"protocol": "socks",
|
|
"settings": {
|
|
"udp": true
|
|
}
|
|
},
|
|
{
|
|
"port": 10802,
|
|
"protocol": "http"
|
|
}
|
|
],
|
|
"outbounds": [
|
|
{
|
|
"protocol": "shadowsocks",
|
|
"settings": {
|
|
"servers": [
|
|
{
|
|
"address": "{{ host }}",
|
|
"port": 1234,
|
|
"method": "2022-blake3-aes-128-gcm",
|
|
"password": "{{ server psk }}:{{ user psk }}"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
Client JSON (transit)
|
|
|
|
```json
|
|
{
|
|
"inbounds": [
|
|
{
|
|
"port": 10801,
|
|
"protocol": "socks",
|
|
"settings": {
|
|
"udp": true
|
|
}
|
|
},
|
|
{
|
|
"port": 10802,
|
|
"protocol": "http"
|
|
}
|
|
],
|
|
"outbounds": [
|
|
{
|
|
"protocol": "shadowsocks",
|
|
"settings": {
|
|
"servers": [
|
|
{
|
|
"address": "{{ host }}",
|
|
"port": 1234,
|
|
"method": "2022-blake3-aes-128-gcm",
|
|
"password": "{{ relay psk }}:{{ user psk }}"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
## Password
|
|
|
|
Shadowsocks 2022 uses a pre-shared key similar to WireGuard for the password.
|
|
|
|
Use `openssl rand -base64 <length>` to generate a shadowsocks-rust compatible key, the length depends on the encryption method used.
|
|
|
|
| encryption method | key length |
|
|
|--------------------------------|-----:|
|
|
| 2022-blake3-aes-128-gcm | 16 |
|
|
| 2022-blake3-aes-256-gcm | 32 |
|
|
| 2022-blake3-chacha20-poly1305 | 32 |
|
|
|
|
In the Go implementation, 32-bit keys always work.
|