SOCKS5 works server-side but DPI on user's path blocks it -> stood up mtg v2.2.8 as systemd service (DynamicUser, Restart=always), FakeTLS domain www.cloudflare.com. Verified: openssl probe -> valid TLS1.3 CN=www.cloudflare.com (indistinguishable from real HTTPS). Secret + tg link in pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
90 lines
6.4 KiB
Markdown
90 lines
6.4 KiB
Markdown
---
|
||
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 + ML-DSA-65 (PQ)**, flow `xtls-rprx-vision` | 🟢 fixed 2026-06-05 (dest→microsoft, server-side verified 204); v2rayN SNI update pending |
|
||
| `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**.
|
||
|
||
**⏳ Остаётся (client-side, делает user в v2rayN):** в профиле `pqmkayaxo2` сменить **SNI** `www.intel.com`
|
||
→ `www.microsoft.com`, переподключиться. (Правил не я: v2rayN держит активное соединение, внешняя правка
|
||
`guiNDB.db` ненадёжна.)
|
||
|
||
## Заметки по диагностике (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>`.
|