.. _supported_options: Supported Configuration Options =============================== This section details all configuration options supported by the V2ROOT library for parsing VLESS, VMess, and Shadowsocks protocols. These options are derived from the parsing functions in the C library (`libv2root`). VLESS Options ------------- The VLESS protocol supports a wide range of transport and security configurations: - **Transport Protocols**: - TCP - HTTP/2 (h2) - WebSocket (ws) - mKCP - QUIC - gRPC - **Security Options**: - None - TLS - Reality - **Encryption**: - None (default) - **Flow Control**: - Optional `flow` parameter for advanced routing (e.g., xtls-rprx-vision) - **TCP Settings**: - Custom header types: `none`, `http` - **HTTP/2 Settings**: - `path`: URL path for HTTP/2 connections - `host`: Host header - `headers`: Custom HTTP headers (e.g., `key=value`) - **WebSocket Settings**: - `path`: WebSocket path - `host`: Host header - **mKCP Settings**: - `headerType`: Header type (e.g., `none`, `srtp`, `utp`) - `seed`: Seed for obfuscation - `congestion`: Congestion control (e.g., `bbr`) - **QUIC Settings**: - `security`: QUIC security mode - `key`: QUIC encryption key - `headerType`: Header type (e.g., `none`, `srtp`) - **gRPC Settings**: - `serviceName`: gRPC service name - `multiMode`: Enable/disable multi-mode (true/false) - **TLS Settings**: - `sni`: Server Name Indication - `alpn`: Application-Layer Protocol Negotiation (e.g., `h2`, `http/1.1`) - `fingerprint`: TLS fingerprint (e.g., `chrome`, `firefox`) - **Reality Settings**: - `publicKey`: Public key for Reality - `shortIds`: Short IDs for authentication - `spiderX`: SpiderX parameter - `fingerprint`: Reality fingerprint - **Inbound Proxies**: - HTTP proxy port (default: 10808) - SOCKS proxy port (default: 1080) VMess Options ------------- The VMess protocol supports similar transport options with additional encryption features: - **Transport Protocols**: - TCP - HTTP/2 (h2) - WebSocket (ws) - mKCP - QUIC - gRPC - **Security Options**: - None - TLS - **Encryption Methods**: - `auto` (default) - `aes-128-gcm` - `chacha20-poly1305` - `none` - **TCP Settings**: - Custom header types: `none`, `http` - **HTTP/2 Settings**: - `path`: URL path - `host`: Host header - `headers`: Custom HTTP headers - **WebSocket Settings**: - `path`: WebSocket path - `host`: Host header - **mKCP Settings**: - `headerType`: Header type - `seed`: Seed for obfuscation - `congestion`: Congestion control (e.g., `bbr`) - **QUIC Settings**: - `security`: QUIC security mode - `key`: QUIC encryption key - `headerType`: Header type - **gRPC Settings**: - `serviceName`: gRPC service name - `multiMode`: Enable/disable multi-mode - **TLS Settings**: - `sni`: Server Name Indication - `alpn`: Application-Layer Protocol Negotiation - **Inbound Proxies**: - HTTP proxy port (default: 10808) - SOCKS proxy port (default: 1080) - **Additional Features**: - `alterId`: Alter ID for backward compatibility (integer, default: 0) Shadowsocks Options ------------------- The Shadowsocks protocol supports simpler configurations with plugin support: - **Transport Protocols**: - TCP (default) - UDP (via SOCKS settings) - **Security Options**: - None - TLS (optional, via `security` parameter) - **Encryption Methods**: - Configurable via `method` (e.g., `aes-256-gcm`, `chacha20-ietf-poly1305`) - **Plugin Support**: - `plugin`: Plugin name (e.g., `v2ray-plugin`, `obfs`) - `plugin-opts`: Plugin-specific options - **Additional Settings**: - `password`: Encryption password - `ota`: One-Time Authentication (true/false, default: false) - `level`: User level (integer, default: 0) - `tag`: Optional tag for routing - `network`: Network type (e.g., `tcp`, `udp`) - **Inbound Proxies**: - HTTP proxy port (default: 10808) - SOCKS proxy port (default: 1080) Usage Notes ----------- - All protocols support configurable HTTP and SOCKS proxy ports, with defaults applied if invalid ports are provided. - Ensure that the configuration strings (VLESS, VMess, Shadowsocks) are correctly formatted to avoid parsing errors. - For detailed error handling, check the logs generated by the `log_message` function in the C library.