Files
admin/.wiki/entities/nl-vds-3xui.md
vitya cacd582303 fix(nl-vds-3xui): disable ML-DSA-65 PQ on Reality 443 — GUI clients can't connect
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>
2026-06-05 12:31:31 +03:00

97 lines
7.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: NL VDS — 3x-UI VLESS/Reality node
type: entity
tags: [vds, cloud, netherlands, vpn, vless, reality, xray, 3x-ui, proxy]
sources: []
updated: 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` явно.
- **Панель 3x-UI:** `https://213.176.64.253:49251/aTKt95PPgt9y2dUHi8` (port 49251, webBasePath `aTKt95PPgt9y2dUHi8`, 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, panel `secret` (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-…` (email `sx9l9csam3`). Без TLS — поэтому работает даже когда Reality лежит.
- **443 (Reality, PQ):** два клиента — `5da48418-…`/`pqmkayaxo2` (flow vision, его использует v2rayN) и `7941887a-…`/`0h5rzrsex3`.
publicKey `zWTp-3dPfB78…`, shortId (клиент) `795fc9`, mldsa65Seed `E9zFSoOd…`. dest/SNI `www.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`](../concepts/reality-pq-mldsa65-dest-incompatibility.md).
**Применённый 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>`.