Xray-examples/Shadowsocks-2022/README.ENG.md
yuhan6665 d35c6f5aaa Update README.ENG.md url fix
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>
2023-04-05 21:08:31 -04:00

4 KiB

#Shadowsocks2022

Server-side 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)

{
   "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)

{
   "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

{
   "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)

{
   "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)

{
   "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)

{
   "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.