Winston2084 5fe3b0c50a
Translate into English #3 (#384)
* Translate into English #3

* Update trojan.md

* Update
2023-06-14 10:17:07 -04:00

2.9 KiB

Shadowsocks

The Shadowsocks protocol is compatible with most other implementations of Shadowsocks.

The current compatibility is as follows:

  • Supports TCP and UDP packet forwarding, with the option to selectively disable UDP.
  • Recommended encryption methods:
    • 2022-blake3-aes-128-gcm
    • 2022-blake3-aes-256-gcm
    • 2022-blake3-chacha20-poly1305
    • Other encryption methods:
    • aes-256-gcm
    • aes-128-gcm
    • chacha20-poly1305 or chacha20-ietf-poly1305
    • xchacha20-poly1305 or xchacha20-ietf-poly1305
    • none or plain

The Shadowsocks 2022 new protocol format improves performance and includes complete replay protection, addressing the following security issues in the old protocol:

::: danger Traffic transmitted without encryption using the "none" method will be in plain text. Do not use it on public networks for security reasons. :::

InboundConfigurationObject

{
  "settings": {
    "password": "password",
    "method": "aes-256-gcm",
    "level": 0,
    "email": "love@xray.com",
    "network": "tcp,udp"
  }
}

network: "tcp" | "udp" | "tcp,udp"

The supported network protocol type. For example, when specified as "tcp", it will only handle TCP traffic. The default value is "tcp".

ClientObject

{
  "password": "密码",
  "method": "aes-256-gcm",
  "level": 0,
  "email": "love@xray.com"
}

method: string

Required.

password: string

Required.

  • Shadowsocks 2022

Use a pre-shared key similar to WireGuard as the password.

Use openssl rand -base64 <length> to generate a compatible key with shadowsocks-rust, where 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, a 32-byte key always works.

  • Other encryption methods

Any string. There is no limitation on the password length, but shorter passwords are more susceptible to cracking. It is recommended to use a password of 16 characters or longer.

level: number

The user level that the connection will use to determine the corresponding Local Policy.

The value of level corresponds to the value of level in the policy. If not specified, the default value is 0.

email: string

The user's email, used to differentiate traffic from different users (logs, statistics).