Files
admin/.wiki/entities/nl-vds-3xui.md
vitya 9359f9ec4f fix(nl-vds-3xui): move Reality 443 -> 2053 (RKN blocking :443)
Confirmed by experiment: Reality on :443 worked ~12min then died (all
timeouts via live v2rayN); moved inbound to :2053 and verified from same
RU PC/core -> exit NL, google 200, 10MB @5.3MB/s. RKN port-blocks :443
dynamically. New X25519 share link (port 2053) in pass. Caveat: 2053 may
also get flagged under heavy use; rotate port if it dies.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 13:06:26 +03:00

97 lines
7.4 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` (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 <tmp>` на отдельном localhost-порту
(socks 10888/10999) + `curl -x socks5h://…` — воспроизводит хендшейк, не трогая активный инбаунд.
- Часы сервера синхронны (Reality time-skew исключён). publicKey выводится из privateKey через
`xray x25519 -i <priv>`; verify — из seed через `xray mldsa65 -i <seed>`.