Skip to content

Commit 3b2f842

Browse files
authored
Create shadowquic.md (#176)
* Create shadowquic.md * Create shadowquic.en.md * Create shadow.ru.md * Rename shadow.ru.md to shadowquic.ru.md * Update shadowquic.md * Update mkdocs.yml * Update shadowquic.md * Update shadowquic.en.md * Update shadowquic.ru.md * Update shadowquic.md * Update shadowquic.en.md * Update shadowquic.ru.md * Update shadowquic.en.md * Update shadowquic.md * Update shadowquic.en.md * Update shadowquic.ru.md
1 parent d3f2330 commit 3b2f842

4 files changed

Lines changed: 324 additions & 0 deletions

File tree

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
# ShadowQUIC
2+
3+
```{.yaml linenums="1"}
4+
proxies:
5+
- name: shadowquic
6+
server: [www.example.com](https://www.example.com)
7+
port: 10443
8+
type: shadowquic
9+
username: username
10+
password: password
11+
# ip: 127.0.0.1
12+
# quic-versions: [v1]
13+
# udp-over-stream: false
14+
# zero-rtt: false
15+
# keep-alive-interval: 10000
16+
# congestion-controller: cubic
17+
# up: 100 Mbps
18+
# down: 100 Mbps
19+
# ignore-client-bandwidth: false
20+
# cwnd: 32
21+
# bbr-profile: "standard"
22+
# max-datagram-frame-size: 1400
23+
# max-open-streams: 1024
24+
# recv-window-conn: 0
25+
# recv-window: 0
26+
# disable-mtu-discovery: false
27+
28+
```
29+
30+
[General Fields](./index.md)
31+
32+
[TLS Fields](./tls.md)
33+
34+
## username
35+
36+
**Required**, username used for ShadowQUIC authentication.
37+
38+
## password
39+
40+
**Required**, password used for ShadowQUIC authentication.
41+
42+
## ip
43+
44+
**Optional**, used to override the DNS lookup result of the server address set in the "server" option.
45+
46+
## quic-versions
47+
48+
**Optional**, sets the supported QUIC versions. Available values: `v1`/`v2`. Default is `v1`.
49+
50+
## udp-over-stream
51+
52+
**Optional**, sets whether to transmit UDP over stream. Default is `false`.
53+
54+
## zero-rtt
55+
56+
**Optional**, sets whether to enable QUIC 0-RTT (Zero Round Trip Time) handshake.
57+
58+
!!! "warning"
59+
The 0-RTT path of the official server may read the user state before JLS authentication is completed (confirmed to affect v0.3.11); if you encounter connection failures or disconnections when using the official server, please disable zero-rtt on the server side.
60+
61+
## keep-alive-interval
62+
63+
**Optional**, the interval time for sending keep-alive heartbeat packets to maintain connection activity, in milliseconds.
64+
65+
## congestion-controller
66+
67+
**Optional**, sets the congestion control algorithm. Available values: `cubic`/`new_reno`/`bbr`. Default is `cubic`.
68+
69+
## up
70+
71+
**Optional**, sets the client upload speed, supports `Mbps`. Specifying this enables the Brutal congestion control algorithm; requires mihomo ShadowQUIC on both ends.
72+
73+
## down
74+
75+
**Optional**, sets the requested client download speed, supports `Mbps`, capped by the receiver's upload speed. Specifying this enables the Brutal congestion control algorithm; requires mihomo ShadowQUIC on both ends.
76+
77+
## ignore-client-bandwidth
78+
79+
**Optional**, used for the Brutal algorithm. Sets whether to ignore the outbound `down` bandwidth of the client and use the listener's `down` bandwidth or automatic configuration instead. Default is `false`.
80+
81+
## cwnd
82+
83+
**Optional**, sets the initial congestion window size. Default is `32`.
84+
85+
## bbr-profile
86+
87+
**Optional**, sets the aggressiveness profile for the BBR algorithm. Available values: `standard`/`conservative`/`aggressive`. Only effective when `congestion-controller` is set to `bbr`.
88+
89+
## max-datagram-frame-size
90+
91+
**Optional**, sets the maximum allowed datagram frame size, in bytes. Default is `1400`.
92+
93+
## max-open-streams
94+
95+
**Optional**, sets the maximum number of concurrent streams that can be opened simultaneously. Default is `1024`.
96+
97+
## recv-window-conn
98+
99+
**Optional**, sets the connection-level receive window size. If set to `0`, the system default value will be used.
100+
101+
## recv-window
102+
103+
**Optional**, sets the stream-level receive window size. If set to `0`, the system default value will be used.
104+
105+
## disable-mtu-discovery
106+
107+
**Optional**, sets whether to disable Path MTU Discovery. If set to `true`, a fixed MTU size will be used.

docs/config/proxies/shadowquic.md

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
# ShadowQUIC
2+
3+
```{.yaml linenums="1"}
4+
proxies:
5+
- name: shadowquic
6+
server: www.example.com
7+
port: 10443
8+
type: shadowquic
9+
username: username
10+
password: password
11+
# ip: 127.0.0.1
12+
# quic-versions: [v1]
13+
# udp-over-stream: false
14+
# zero-rtt: false
15+
# keep-alive-interval: 10000
16+
# congestion-controller: cubic
17+
# up: 100 Mbps
18+
# down: 100 Mbps
19+
# ignore-client-bandwidth: false
20+
# cwnd: 32
21+
# bbr-profile: "standard"
22+
# max-datagram-frame-size: 1400
23+
# max-open-streams: 1024
24+
# recv-window-conn: 0
25+
# recv-window: 0
26+
# disable-mtu-discovery: false
27+
28+
```
29+
30+
[通用字段](./index.md)
31+
32+
[TLS 字段](./tls.md)
33+
34+
## username
35+
36+
必须,用于 ShadowQUIC 的认证用户名
37+
38+
## password
39+
40+
必须,用于 ShadowQUIC 的认证密码
41+
42+
## ip
43+
44+
可选,用于覆盖“server”选项中设置的服务器地址的 DNS 查找结果
45+
46+
## quic-versions
47+
48+
可选,设置支持的 QUIC 版本,可选值为 `v1`/`v2`,默认为 `v1`
49+
50+
## udp-over-stream
51+
52+
可选,设置是否通过数据流传输 UDP(UDP over stream),默认为 `false`
53+
54+
## zero-rtt
55+
56+
可选,设置是否开启 0-RTT(零往返时延握手)。
57+
58+
!!! "warning"
59+
官方 server 的 0-RTT 路径可能在 JLS 认证完成前读取用户状态(已确认影响 v0.3.11);使用官方 server 如果遇到不通或断联情况,请在服务端关闭 zero-rtt
60+
61+
## keep-alive-interval
62+
63+
可选,发送保持连接活动的心跳包的间隔时间,单位为毫秒
64+
65+
## congestion-controller
66+
67+
可选,设置拥塞控制算法,可选值为 `cubic`/`new_reno`/`bbr`,默认为 `cubic`
68+
69+
## up
70+
71+
可选,设置客户端上传速度,单位支持 Mbps。填入此项将启用 Brutal 拥塞控制算法;需要通信两端均为 mihomo 且运行 ShadowQUIC
72+
73+
## down
74+
75+
可选,设置客户端请求的下载速度,单位支持 Mbps,受接收端上传速度上限限制。填入此项将启用 Brutal 拥塞控制算法;需要通信两端均为 mihomo 且运行 ShadowQUIC
76+
77+
## ignore-client-bandwidth
78+
79+
可选,用于 Brutal 算法。设置是否忽略客户端出站的 `down` 带宽限制,而转为使用入站监听器(listener)的 `down` 限制或自动配置,默认为 `false`
80+
81+
## cwnd
82+
83+
可选,设置初始拥塞窗口大小(Initial Congestion Window size),默认为 `32`
84+
85+
## bbr-profile
86+
87+
可选,设置 BBR 算法的激进程度配置,可选值为 `standard`/`conservative`/`aggressive`,仅在拥塞控制算法为 `bbr` 时有效
88+
89+
## max-datagram-frame-size
90+
91+
可选,设置允许的最大数据报帧大小,单位为字节,默认为 `1400`
92+
93+
## max-open-streams
94+
95+
可选,设置最大同时打开的并发流数量,默认为 `1024`
96+
97+
## recv-window-conn
98+
99+
可选,设置连接级别的接收窗口大小,如果设为 `0` 则使用系统默认值
100+
101+
## recv-window
102+
103+
可选,设置单个流级别的接收窗口大小,如果设为 `0` 则使用系统默认值
104+
105+
## disable-mtu-discovery
106+
107+
可选,设置是否禁用路径 MTU 发现(Path MTU Discovery),若设为 `true` 则使用固定的 MTU 大小
108+
109+
```
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
# ShadowQUIC
2+
3+
```{.yaml linenums="1"}
4+
proxies:
5+
- name: shadowquic
6+
server: www.example.com
7+
port: 10443
8+
type: shadowquic
9+
username: username
10+
password: password
11+
# ip: 127.0.0.1
12+
# quic-versions: [v1]
13+
# udp-over-stream: false
14+
# zero-rtt: false
15+
# keep-alive-interval: 10000
16+
# congestion-controller: cubic
17+
# up: 100 Mbps
18+
# down: 100 Mbps
19+
# ignore-client-bandwidth: false
20+
# cwnd: 32
21+
# bbr-profile: "standard"
22+
# max-datagram-frame-size: 1400
23+
# max-open-streams: 1024
24+
# recv-window-conn: 0
25+
# recv-window: 0
26+
# disable-mtu-discovery: false
27+
28+
```
29+
30+
[Общие поля](./index.md)
31+
32+
[Поля TLS](./tls.md)
33+
34+
## username
35+
36+
**Обязательно**, имя пользователя для аутентификации ShadowQUIC.
37+
38+
## password
39+
40+
**Обязательно**, пароль для аутентификации ShadowQUIC.
41+
42+
## ip
43+
44+
**Необязательно**, используется для переопределения результатов DNS-запроса адреса сервера, указанного в опции «server».
45+
46+
## quic-versions
47+
48+
**Необязательно**, устанавливает поддерживаемые версии QUIC. Доступные значения: `v1`/`v2`. По умолчанию `v1`.
49+
50+
## udp-over-stream
51+
52+
**Необязательно**, устанавливает, следует ли передавать UDP через поток (UDP over stream). По умолчанию `false`.
53+
54+
## zero-rtt
55+
56+
**Необязательно**, устанавливает, следует ли включить рукопожатие QUIC 0-RTT (Zero Round Trip Time).
57+
58+
!!! "warning"
59+
Путь 0-RTT официального сервера может считывать состояние пользователя до завершения аутентификации JLS (подтверждено влияние на v0.3.11); если вы столкнулись с отсутствием подключения или разрывами связи при использовании официального сервера, пожалуйста, отключите zero-rtt на стороне сервера.
60+
61+
## keep-alive-interval
62+
63+
**Необязательно**, интервал времени между отправками пакетов проверки активности (heartbeat) для поддержания соединения, в миллисекундах.
64+
65+
## congestion-controller
66+
67+
**Необязательно**, устанавливает алгоритм управления перегрузкой. Доступные значения: `cubic`/`new_reno`/`bbr`. По умолчанию `cubic`.
68+
69+
## up
70+
71+
**Необязательно**, задает скорость отдачи (загрузки в сеть) клиента, поддерживаются единицы `Mbps`. Заполнение этого поля включает алгоритм управления перегрузкой Brutal; требуется использование mihomo ShadowQUIC на обоих концах соединения.
72+
73+
## down
74+
75+
**Необязательно**, задает запрашиваемую клиентом скорость скачивания, поддерживаются единицы `Mbps`, ограничивается скоростью отдачи принимающей стороны. Заполнение этого поля включает алгоритм управления перегрузкой Brutal; требуется использование mihomo ShadowQUIC на обоих концах соединения.
76+
77+
## ignore-client-bandwidth
78+
79+
**Необязательно**, используется для алгоритма Brutal. Указывает, следует ли игнорировать ограничение исходящей скорости скачивания (`down`) клиента и использовать вместо него ограничение входящего слушателя (listener `down`) или автоматическую настройку. По умолчанию `false`.
80+
81+
## cwnd
82+
83+
**Необязательно**, устанавливает начальный размер окна перегрузки (Initial Congestion Window size). По умолчанию `32`.
84+
85+
## bbr-profile
86+
87+
**Необязательно**, устанавливает степень агрессивности алгоритма BBR. Доступные значения: `standard`/`conservative`/`aggressive`. Работает только в том случае, если для `congestion-controller` установлено значение `bbr`.
88+
89+
## max-datagram-frame-size
90+
91+
**Необязательно**, устанавливает максимальный допустимый размер кадра датаграммы в байтах. По умолчанию `1400`.
92+
93+
## max-open-streams
94+
95+
**Необязательно**, устанавливает максимальное количество одновременно открытых параллельных потоков. По умолчанию `1024`.
96+
97+
## recv-window-conn
98+
99+
**Необязательно**, устанавливает размер окна приема на уровне соединения. Если установлено значение `0`, используется системное значение по умолчанию.
100+
101+
## recv-window
102+
103+
**Необязательно**, устанавливает размер окна приема на уровне отдельного потока. Если установлено значение `0`, используется системное значение по умолчанию.
104+
105+
## disable-mtu-discovery
106+
107+
**Необязательно**, устанавливает, следует ли отключить обнаружение пути MTU (Path MTU Discovery). Если установлено значение `true`, будет использоваться фиксированный размер MTU.

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,7 @@ nav:
285285
- Hysteria: config/proxies/hysteria.md
286286
- Hysteria2: config/proxies/hysteria2.md
287287
- TUIC: config/proxies/tuic.md
288+
- ShadowQUIC: config/proxies/shadowquic.md
288289
- WireGuard: config/proxies/wg.md
289290
- Tailscale: config/proxies/tailscale.md
290291
- SSH: config/proxies/ssh.md

0 commit comments

Comments
 (0)