Configuration Reference
Juicity uses JSON for configuration. Below is a detailed explanation of all supported fields for both Client and Server.
Common Fields
These fields can be used in both client.json and server.json.
| Field | Type | Description |
|---|---|---|
listen |
string | Required. Server: Address to listen for incoming QUIC connections (e.g., :23182). Client: Address to serve the local SOCKS5/HTTP proxy (e.g., :1080). |
congestion_control |
string | Congestion control algorithm. Options: bbr, cubic, new_reno. Default depends on system, usually cubic. |
log_level |
string | Logging verbosity. Options: debug, info, warn, error, fatal. |
Client Configuration (juicity-client)
| Field | Type | Description |
|---|---|---|
server |
string | Required. The address of the remote Juicity server (e.g., 1.2.3.4:23182). |
uuid |
string | Required. The user ID for authentication. |
password |
string | Required. The password for authentication. |
sni |
string | Server Name Indication. Required if server is an IP address. Must match the server certificate. |
allow_insecure |
bool | If true, skips TLS certificate verification. Not recommended unless testing. |
pinned_certchain_sha256 |
string | Hash of the remote certificate chain for pinning. Useful for self-signed certificates. Generate via juicity-server generate-certchain-hash. |
protect_path |
string | Android/Linux only. Path to a unix socket for VPN service protection (protecting socket from VPN loop). |
forward |
map | Port forwarding rules. Maps a local address to a remote address. Format: "<Local>" : "<Remote>". Example: "127.0.0.1:2222": "192.168.1.5:22". |
Forwarding Example
"forward": {
"127.0.0.1:12322": "127.0.0.1:22",
"0.0.0.0:5201/tcp": "127.0.0.1:5201",
"0.0.0.0:5353/udp": "8.8.8.8:53"
}
Server Configuration (juicity-server)
| Field | Type | Description |
|---|---|---|
users |
map | Required. A map of legitimate users. Key is UUID, Value is password. |
certificate |
string | Required. Path to the TLS certificate file (full chain). |
private_key |
string | Required. Path to the TLS private key file. |
disable_outbound_udp443 |
bool | If true, blocks outbound UDP traffic to port 443. This is often QUIC traffic, blocking it forces fallbacks to TCP, saving server resources. |
fwmark |
string | Optional firewall mark (e.g., 0x1000) for outgoing connections. Useful for policy routing on Linux. |
send_through |
string | Specific IP address to bind for outgoing connections. |
dialer_link |
string | Advanced. Specifies a proxy chain or specific dialer for outbound connections. Uses daeuniverse/outbound format. |
Full Server Example
{
"listen": ":23182",
"users": {
"00000000-0000-0000-0000-000000000000": "my_password"
},
"certificate": "/etc/juicity/fullchain.cer",
"private_key": "/etc/juicity/private.key",
"congestion_control": "bbr",
"log_level": "info",
"disable_outbound_udp443": true
}