github.com/sagernet/sing-box@v1.9.0-rc.20/docs/manual/proxy-protocol/shadowsocks.md (about)

     1  ---
     2  icon: material/send
     3  ---
     4  
     5  # Shadowsocks
     6  
     7  As the most well-known Chinese-made proxy protocol,
     8  Shadowsocks exists in multiple versions,
     9  but only AEAD 2022 ciphers TCP with multiplexing is recommended.
    10  
    11  | Ciphers        | Specification                                              | Cryptographic Security | Binary Characteristics | Active Detect Hiddenness |
    12  |----------------|------------------------------------------------------------|------------------------|------------------------|--------------------------|
    13  | Stream Ciphers | [shadowsocks.org](https://shadowsocks.org/doc/stream.html) | :material-alert:       | :material-alert:       | :material-alert:         |
    14  | AEAD           | [shadowsocks.org](https://shadowsocks.org/doc/aead.html)   | :material-check:       | :material-alert:       | :material-alert:         |
    15  | AEAD 2022      | [shadowsocks.org](https://shadowsocks.org/doc/sip022.html) | :material-check:       | :material-check:       | :material-help:          |
    16  
    17  ## :material-text-box-check: Password Generator
    18  
    19  | For `2022-blake3-aes-128-gcm` cipher | For other ciphers             | Action                                                          |
    20  |--------------------------------------|-------------------------------|-----------------------------------------------------------------|
    21  | <code id="password_16"><code>        | <code id="password_32"><code> | <button class="md-button" onclick="generate()">Refresh</button> |
    22  
    23  <script>
    24      function generatePassword(element, length) {
    25          const array = new Uint8Array(length);
    26          window.crypto.getRandomValues(array);
    27          document.getElementById(element).textContent = btoa(String.fromCharCode.apply(null, array));
    28      }
    29      function generate() {
    30        generatePassword("password_16", 16);
    31        generatePassword("password_32", 32);
    32      }
    33      generate();
    34  </script>
    35  
    36  ## :material-server: Server Example
    37  
    38  === ":material-account: Single-user"
    39  
    40      ```json
    41       {
    42        "inbounds": [
    43          {
    44            "type": "shadowsocks",
    45            "listen": "::",
    46            "listen_port": 8080,
    47            "network": "tcp",
    48            "method": "2022-blake3-aes-128-gcm",
    49            "password": "<password>",
    50            "multiplex": {
    51              "enabled": true
    52            }
    53          }
    54        ]
    55      }
    56      ```
    57  
    58  === ":material-account-multiple: Multi-user"
    59  
    60      ```json
    61       {
    62        "inbounds": [
    63          {
    64            "type": "shadowsocks",
    65            "listen": "::",
    66            "listen_port": 8080,
    67            "network": "tcp",
    68            "method": "2022-blake3-aes-128-gcm",
    69            "password": "<server_password>",
    70            "users": [
    71              {
    72                "name": "sekai",
    73                "password": "<user_password>"
    74              }
    75            ],
    76            "multiplex": {
    77              "enabled": true
    78            }
    79          }
    80        ]
    81      }
    82      ```
    83  
    84  ## :material-cellphone-link: Client Example
    85  
    86  === ":material-account: Single-user"
    87  
    88      ```json
    89      {
    90        "outbounds": [
    91          {
    92            "type": "shadowsocks",
    93            "server": "127.0.0.1",
    94            "server_port": 8080,
    95            "method": "2022-blake3-aes-128-gcm",
    96            "password": "<pasword>",
    97            "multiplex": {
    98              "enabled": true
    99            }
   100          }
   101        ]
   102      }
   103      ```
   104  
   105  === ":material-account-multiple: Multi-user"
   106  
   107      ```json
   108      {
   109        "outbounds": [
   110          {
   111            "type": "shadowsocks",
   112            "server": "127.0.0.1",
   113            "server_port": 8080,
   114            "method": "2022-blake3-aes-128-gcm",
   115            "password": "<server_pasword>:<user_password>",
   116            "multiplex": {
   117              "enabled": true
   118            }
   119          }
   120        ]
   121      }
   122      ```