Root cause of "Reality fails on client": v2rayN 7.19.5 + phone apps do NOT emit mldsa65Verify to the xray core, so they can't auth to a PQ-mandated REALITY inbound (only plain VLESS 32030 worked). Replica matrix: noPQ+no-verify=204, PQ+no-verify=000, noPQ+with-verify=000. Removed mldsa65Seed from inbound id=1 -> standard Reality X25519. Verified verify-less client through real :443 -> 204. Fresh X25519 share-link generated for re-import. Wiki concept updated. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
7.3 KiB
title, type, tags, sources, updated
| title | type | tags | sources | updated | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| NL VDS — 3x-UI VLESS/Reality node | entity |
|
2026-06-05 |
NL VDS — 3x-UI
Арендованный облачный VDS в Нидерландах, активирован 2026-06-05. Назначение — личный VLESS/Reality прокси-узел под управлением 3x-UI (x-ui panel). Через него ведётся рабочее соединение.
Hardware / tariff
- Локация: Нидерланды
- Public IP:
213.176.64.253 - vCPU: 1
- RAM: 2 GiB
- Disk: 30 GiB NVMe
- OS: Ubuntu 24.04
- PTR:
square-white.ptr.network
Доступ
- SSH:
root@213.176.64.253(password auth включён). Host-key (ed25519):SHA256:XR2+0PCVUoEMrFHOoIu7IPXb4xP2JnYkqFr1uqs8YrA.- С Windows non-interactive:
plink -ssh -batch -hostkey "SHA256:XR2+0PCVUoEMrFHOoIu7IPXb4xP2JnYkqFr1uqs8YrA" -pw <pass> root@213.176.64.253 "<cmd>". PowerShell-пайпyвplinkдля приёма host-key не работает (plink читает промпт с консоли, не stdin) — передавать-hostkeyявно.
- С Windows non-interactive:
- Панель 3x-UI:
https://213.176.64.253:49251/aTKt95PPgt9y2dUHi8(port 49251, webBasePathaTKt95PPgt9y2dUHi8, sub-port 2096). - Креды:
pass show nl-vds-3xui/full-env(root SSH pass, panel user/pass, panel JWT secret, все UUID/ключи/seed Reality-инбаунда). Все логин-креды ротированы 2026-06-05 (оригиналы засветились в плейнтексте при заведении): root SSH pass, panel username+password, panelsecret(JWT-ключ — убил install-time API token и сессии). Reality privateKey/UUID/seed НЕ ротировались (не были экспонированы, на них завязан клиентский профиль).
Software stack
| Слой | Компонент | Версия |
|---|---|---|
| OS | Ubuntu | 24.04 |
| Panel | 3x-UI (x-ui) | 3.2.7 |
| Core | Xray | 26.6.1 |
| DB | SQLite | /etc/x-ui/x-ui.db |
| Firewall | ufw | inactive (iptables policy ACCEPT) |
x-ui — нативный systemd-сервис (не docker). Сгенерированный конфиг ядра: /usr/local/x-ui/bin/config.json,
бинарь xray: /usr/local/x-ui/bin/xray-linux-amd64.
Inbounds
| Tag | Порт | Протокол | Security | Статус |
|---|---|---|---|---|
in-32030-tcp |
32030 | VLESS / tcp | none | 🟢 работает (рабочее соединение) |
in-443-tcp |
443 | VLESS / tcp | Reality (X25519), flow xtls-rprx-vision, dest www.microsoft.com |
🟢 рабочий 2026-06-05; ML-DSA-65 PQ снят (клиенты не шлют verify) |
inbound-socks-47020 |
47020 | SOCKS5 (auth=password, udp) | none (plaintext) | 🟡 added 2026-06-05 для Telegram; на сервере ОК (auth required), но у user режется DPI на его пути → заменён на MTProto |
MTProto proxy (mtg) — port 8443 — added 2026-06-05
Не xray-инбаунд — отдельный сервис mtg v2.2.8 (9seconds/mtg), бинарь /usr/local/bin/mtg, конфиг
/etc/mtg.toml, systemd-юнит mtg.service (DynamicUser, Restart=always, enabled). FakeTLS под
www.cloudflare.com — для DPI трафик неотличим от настоящего HTTPS на Cloudflare (проверено: openssl s_client :8443 -servername www.cloudflare.com → валидный TLS1.3 cert CN=www.cloudflare.com). Поднят
взамен SOCKS5, который у user'а резал DPI (на сервере SOCKS рабочий).
-
Управление:
systemctl status|restart mtg; ссылки —mtg access /etc/mtg.toml. -
Креды (secret hex/b64 + tg-ссылка) — в
pass show nl-vds-3xui/full-env. -
32030 (plain VLESS): uuid
a6fa7965-…(emailsx9l9csam3). Без TLS — поэтому работает даже когда Reality лежит. -
443 (Reality, PQ): два клиента —
5da48418-…/pqmkayaxo2(flow vision, его использует v2rayN) и7941887a-…/0h5rzrsex3. publicKeyzWTp-3dPfB78…, shortId (клиент)795fc9, mldsa65SeedE9zFSoOd…. dest/SNIwww.intel.com.
Reality 443 — дефект устранён 2026-06-05 (server-side)
Был: Reality-инбаунд на 443 (ML-DSA-65 PQ) с dest/SNI www.intel.com не коннектился — Akamai-фронтящий
intel не поддерживает PQ-обмен ключами (X25519MLKEM768), слал HelloRetryRequest → borrowed-TLS рукопожатие
REALITY не достраивалось (REALITY: handshake did not complete). Полный разбор + изоляционная матрица:
reality-pq-mldsa65-dest-incompatibility.
Применённый fix (2026-06-05): dest/target инбаунда www.intel.com:443 → www.microsoft.com:443,
serverNames → ["www.microsoft.com"] (правка stream_settings в x-ui.db id=1 + x-ui restart).
ML-DSA-65 сохранён. Проверено сквозным тоннелем (temp-клиент → реальный 127.0.0.1:443, SNI microsoft,
client uuid 5da48418 + vision + mldsa65Verify) → HTTP 204.
Update 2026-06-05 (вечер): ML-DSA-65 PQ снят с инбаунда. Даже после fix dest клиенты (v2rayN 7.19.5,
телефонные приложения) не коннектились через Reality, хотя plain VLESS 32030 работал. Причина: 3x-UI
включил ML-DSA-65 по умолчанию, а GUI-клиенты не передают mldsa65Verify в ядро (проверено: empty в
configTest; replica-тест «noPQ-server + client без verify → 204», «+ с verify → 000»). PQ-Reality слишком
свежий для клиентского тула. Фикс: удалён mldsa65Seed из инбаунда id=1 (+ display-verify) → обычный
Reality X25519. Проверено verify-less клиентом через реальный :443 → HTTP 204.
Share-link (X25519, без PQ) — для импорта в v2rayN/телефон:
vless://5da48418-…@213.176.64.253:443?type=tcp&security=reality&pbk=zWTp-3dPfB78…&fp=chrome&sni=www.microsoft.com&sid=795fc9&spx=%2F&flow=xtls-rprx-vision#NL-Reality
(полный — в pass show nl-vds-3xui/full-env).
Заметки по диагностике (read-only методология)
- Дамп инбаундов:
python3+sqlite3 file:/etc/x-ui/x-ui.db?mode=ro(read-only, sqlite3-CLI на сервере нет). - Изолированный тест клиента/сервера: поднять временный
xray run -c <tmp>на отдельном localhost-порту (socks 10888/10999) +curl -x socks5h://…— воспроизводит хендшейк, не трогая активный инбаунд. - Часы сервера синхронны (Reality time-skew исключён). publicKey выводится из privateKey через
xray x25519 -i <priv>; verify — из seed черезxray mldsa65 -i <seed>.