SunnyQuic outbound¶
Sunnyquic outbound configuration
example:
addr: "12.34.56.7:1089" # or "[12:ff::ff]:1089" for dualstack
password: "12345678"
username: "87654321"
server-name: "echo.free.beeceptor.com"
alpn: ["h3"]
initial-mtu: 1400
congestion-control: bbr
zero-rtt: true
over-stream: false # true for udp over stream, false for udp over datagram
Fields¶
username¶
- Type:
string - Required: yes
username, must be the same as the server
password¶
- Type:
string - Required: yes
password, must be the same as the server
addr¶
- Type:
string - Required: yes
Shadowquic server address. example: 127.0.0.0.1:443, www.server.com:443, [ff::f1]:4443
extra-paths¶
- Type: list of
string - Required: no
- Default: (type default)
Additional paths for multipath quic IPV4 or IPv6 path are all fine. Right now only one path is used to sending data, the rest paths are backup paths. See https://github.com/n0-computer/quinn/issues/389 for more details.
It's recommended to use IPV4 and IPV6 path together for dual stack network.
max-path-num¶
- Type:
u32 - Required: no
- Default:
12
Maximum number of paths for multipath quic, 0 for disabling multipath
server-name¶
- Type:
string - Required: yes
Server name, must be the same as the server jls_upstream domain name
alpn¶
- Type: list of
string - Required: no
- Default:
vec!["h3".into()]
Alpn of tls, default is ["h3"], must have common element with server
cert-path¶
- Type:
path(optional) - Required: no
Certificate path for tls
initial-mtu¶
- Type:
u16 - Required: no
- Default:
1300
Initial mtu, must be larger than min mtu, at least to be 1200. 1400 is recommended for high packet loss network. default to be 1300
congestion-control¶
- Type:
CongestionControl - Required: no
- Default:
bbr
Congestion control, default to "bbr", supported: "bbr", "new-reno", "cubic"
zero-rtt¶
- Type:
bool - Required: no
- Default:
true
Set to true to enable zero rtt, default to true
over-stream¶
- Type:
bool - Required: no
- Default:
false
Transfer udp over stream or over datagram. If true, use quic stream to send UDP, otherwise use quic datagram extension, similar to native UDP in TUIC
min-mtu¶
- Type:
u16 - Required: no
- Default:
1290
Minimum mtu, must be smaller than initial mtu, at least to be 1200. 1400 is recommended for high packet loss network. default to be 1290
keep-alive-interval¶
- Type:
u32 - Required: no
- Default:
0
Keep alive interval in milliseconds 0 means disable keep alive, should be smaller than 30_000(idle time). Disabled by default.
gso¶
- Type:
bool - Required: no
- Default:
true
Enable QUIC Generic Segmentation Offload (GSO).
Controls [quinn::TransportConfig::enable_segmentation_offload]. When supported, GSO reduces
CPU usage for bulk sends; unsupported environments may see transient startup packet loss.
Enabled by default
mtu-discovery¶
- Type:
bool - Required: no
- Default:
true
Enable auto MTU discovery, default to true For stable udp network, it's better to disable it and set a proper initial mtu
cipher-suite-preference¶
- Type: list of
CipherSuitePreference(optional) - Required: no
Optional TLS 1.3 cipher suite preference. If unset, use rustls/ring default preference order.
fw-mark¶
- Type:
u32(optional) - Required: no
fw_mark on linux
bind-interface¶
- Type:
Interface(optional) - Required: no
binding interface of this outgoing packet.
If bind_interface is set, the outgoing packet will be sent from the
specified interface. Recommend to use to cooporate with other tun based proxy like sing-box/mihomo
Example:
protect-path¶
- Type:
path(optional) - Required: no
Android Only. the unix socket path for protecting android socket