fix(proxy-client): обновлён Xray и исправлен разбор VLESS
Зачем: профиль XHTTP с x_padding_bytes и пустым host не запускался. Что: Xray обновлён до 26.10.10; добавлены параметры TLS, REALITY и XHTTP, значения по умолчанию и преобразование старых названий сессии XHTTP. Обновлены документация и регрессионные тесты. Проверка: 59 тестов на Python 3.14 и 3.8, Bash-функции и установщик; 16 тестов разбора после уточнения проверки SHA-256. Настоящий Xray проверил конфигурацию и выполнил HTTPS-запрос через профиль с HTTP 200. Пользователь подтвердил работу proxy-client start.
This commit is contained in:
1 parent
16e85139b9
commit
a30e2eb939
5 files changed
+266
-28
No files matched your search
+35
-3
@@ -354,13 +354,38 @@ source ~/.config/proxy-client/shell.bash
|
||||
`http/1.1`, `h2` и `h3`; `extra` должен быть JSON-объектом, его содержимое
|
||||
проверяет `xray run -test`.
|
||||
|
||||
Параметры ссылок передаются по [спецификации Xray](https://github.com/XTLS/Xray-core/discussions/716):
|
||||
|
||||
| В ссылке | В конфигурации Xray |
|
||||
|----------|---------------------|
|
||||
| `ech` | TLS `echConfigList` |
|
||||
| `pqv`, `spx` | REALITY `mldsa65Verify`, `spiderX` |
|
||||
| `fm` | `streamSettings.finalmask`, JSON-объект |
|
||||
| `x_padding_bytes`, `xPaddingBytes` | XHTTP `extra.xPaddingBytes` |
|
||||
| `scMaxEachPostBytes`, `scMinPostsIntervalMs`, `uplinkChunkSize` | Одноимённые поля XHTTP внутри `extra` |
|
||||
|
||||
Для XHTTP пустой или отсутствующий `host` допустим; при отсутствии `path`
|
||||
используется `/`. Имена `sessionPlacement` и `sessionKey` в `extra`, включая
|
||||
отдельное соединение скачивания, преобразуются в `sessionIDPlacement` и
|
||||
`sessionIDKey`. Если старое и новое имя задают разные значения, профиль
|
||||
отклоняется. Новые `sessionIDTable` и `sessionIDLength` передаются ядру.
|
||||
Параметры XHTTP с именами как в JSON имеют приоритет над `extra`, а
|
||||
`extra.xPaddingBytes` — над `x_padding_bytes`.
|
||||
|
||||
При отсутствии `encryption` используется `none`, `sni` — адрес сервера,
|
||||
TLS `fp` — `chrome`. Для REALITY `fp` и `pbk` обязательны, а `flow` и `sid`
|
||||
могут быть пустыми или отсутствовать; `type=raw` принимается как `type=tcp`.
|
||||
Пустые `ech`, `pqv`, `spx`, `pcs`, `vcn` допустимы. SHA-256 в `pcs` может
|
||||
содержать двоеточия и пробелы по краям. Метка `support-x25519mlkem768=true` в REALITY
|
||||
принимается для совместимости со ссылками 3x-ui и не создаёт поле в JSON Xray.
|
||||
|
||||
Кроме `encryption=none`, принимается VLESS-шифрование
|
||||
`encryption=mlkem768x25519plus.…` из новых ссылок Hiddify; остальную часть
|
||||
значения проверяет сам Xray. Только с таким шифрованием XHTTP допускает
|
||||
`flow=xtls-rprx-vision`. Косая черта перед параметрами (`…:443/?type=…`)
|
||||
допустима, другой путь в ссылке — нет.
|
||||
|
||||
Xray 26.3.27 использует `pcs` и `vcn`. Устаревшие `allowInsecure` и `insecure`
|
||||
Xray 26.10.10 использует `pcs` и `vcn`. Устаревшие `allowInsecure` и `insecure`
|
||||
принимаются с любым значением, но не переносятся: при значении `1` или `true`
|
||||
выводится предупреждение, а сертификат проверяется обычным способом.
|
||||
|
||||
@@ -371,10 +396,17 @@ Xray 26.3.27 использует `pcs` и `vcn`. Устаревшие `allowIns
|
||||
|
||||
### Проверяемая установка Xray
|
||||
|
||||
`proxy-client install` устанавливает Xray 26.3.27 в `~/.local/bin/xray`. Для
|
||||
`proxy-client install` устанавливает Xray 26.10.10 в `~/.local/bin/xray`. Для
|
||||
`x86_64`/`amd64` используется `Xray-linux-64.zip`, для `aarch64`/`arm64` —
|
||||
`Xray-linux-arm64-v8a.zip`; остальные архитектуры отклоняются.
|
||||
|
||||
[Выпуск 26.10.10](https://github.com/XTLS/Xray-core/releases/tag/v26.10.10)
|
||||
помечен как предварительный. Обновление уже установленного клиента:
|
||||
|
||||
```bash
|
||||
proxy-client install --replace
|
||||
```
|
||||
|
||||
CLI скачивает официальный архив и файл `.dgst`, сверяет SHA-256 и фактическую
|
||||
версию бинарника, а затем атомарно заменяет назначение. При любой ошибке старый
|
||||
файл остаётся на месте. Если нужная версия уже установлена, сеть не нужна и
|
||||
@@ -386,7 +418,7 @@ CLI скачивает официальный архив и файл `.dgst`, с
|
||||
Устанавливать можно и при работающем Xray: он продолжит работу со старым файлом,
|
||||
а `install` напомнит перезапустить `start`.
|
||||
|
||||
`start` использует первый `xray` из `PATH` и принимает только версию 26.3.27.
|
||||
`start` использует первый `xray` из `PATH` и принимает только версию 26.10.10.
|
||||
|
||||
### Файлы и безопасность
|
||||
|
||||
|
||||
Reference in new issue
Block a user