--- 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 root@213.176.64.253 ""`. 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` (port→**2053**) | 2053 | **Reality (X25519)**, flow `xtls-rprx-vision`, dest `www.microsoft.com` | 🟢 на 2053; ML-DSA-65 снят; **перенесён с 443** — РКН заблокировал `:443` 2026-06-05 (на 443 умер через ~12 мин, на 2053 ожил — verified) | | `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 ` на отдельном localhost-порту (socks 10888/10999) + `curl -x socks5h://…` — воспроизводит хендшейк, не трогая активный инбаунд. - Часы сервера синхронны (Reality time-skew исключён). publicKey выводится из privateKey через `xray x25519 -i `; verify — из seed через `xray mldsa65 -i `.