New entity de-vds-3xui — Germany VPS 130.17.17.158 (Fornex, Ubuntu 24.04),
3x-ui 3.5.0 / xray 26.7.11, plain VLESS 32030 security=none (analog of nl-vds-3xui;
masked protocols intentionally NOT raised). Captured 3.5.0 gotchas vs 3.2.7:
CSRF on all panel POSTs (X-CSRF-Token, GET {BP}csrf-token), direct DB INSERT
into inbounds no longer renders (client model split across clients/
client_inbounds/client_traffics → use panel API add), wrapper `x-ui setting`
doesn't persist creds (binary only). Server-side e2e verified; real RF-client
test pending user. +index.md, +log.md.
Co-Authored-By: Claude <noreply@anthropic.com>
8.8 KiB
title, type, tags, sources, updated
| title | type | tags | sources | updated | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| DE VDS — 3x-UI VLESS node | entity |
|
2026-07-14 |
DE VDS — 3x-UI
Личный прокси-VDS в Германии, активирован 2026-07-14, под управлением 3x-UI 3.5.0 / Xray 26.7.11. Назначение — обход блокировок для себя и раздача доступа друзьям. Аналог nl-vds-3xui (NL/Aeza), поднятый по тем же урокам: повторён только проверенный plain VLESS, маскированные протоколы (Reality/MTProto/SOCKS5) НЕ поднимались (на NL у боевых клиентов из РФ не заработали).
Не путать с nl-vds-3xui (
213.176.64.253, Aeza) и vdsina-outline-3xui (46.151.25.64, VDSina Amsterdam) — это два NL-узла. Этот — Fornex130.17.17.158, Германия.
Hardware
- Локация: Германия (провайдер Fornex,
335555.fornex.cloud) - Public IP:
130.17.17.158; IPv6:2a02:6b40:2000:3505::1 - vCPU / RAM / Disk: 1 / 2 GiB / 20 GiB NVMe ; swap 0 ; 300 Мбит/с
- OS: Ubuntu 24.04.4 LTS (kernel 6.8) ; ufw inactive, iptables ACCEPT
Доступ
- SSH:
root@130.17.17.158(password auth). Host-key (ed25519):SHA256:1AQ5jyJDE7iunqZe7skV3B+8fpDhPmC4CRFwfrRcmdE.- С Windows non-interactive:
plink -ssh -batch -hostkey "SHA256:1AQ5...mdE" -pw <pass> root@... -m <script>. Инлайн-команды с кавычками PowerShell корёжит → скрипт через-m(тот же урок, что на nl-vds-3xui).
- С Windows non-interactive:
- Панель 3x-UI:
http://130.17.17.158:37601/e2l5qBmNRkJ8Xw9CtM/(port 37601, http — БЕЗ TLS; random path единственный барьер от сканеров; fail2ban3x-iplactive). - Sub:
http://130.17.17.158:2096/sub/. - Креды:
pass show de-vds-3xui/full-env. Креды панель user/pass заданы вручную (install автосгенерилjclyRE8LrK+ bcrypt, plaintext был недоступен).settings.secret(JWT) НЕ ротирован (не светился).
Software stack
| Слой | Компонент | Версия |
|---|---|---|
| OS | Ubuntu | 24.04.4 LTS |
| Panel | 3x-UI (нативный systemd x-ui.service, enabled) |
3.5.0 |
| Core | Xray (/usr/local/x-ui/bin/xray-linux-amd64) |
26.7.11 |
| DB | SQLite /etc/x-ui/x-ui.db (бэкапы /etc/x-ui/x-ui.db.bak.*) |
— |
| Firewall/IPS | ufw inactive; fail2ban jail 3x-ipl (поставился вместе с 3x-ui) |
— |
Текущее состояние (2026-07-14)
🟢 Работает. Единственный инбаунд — plain VLESS 32030 (security=none, tcp). xray слушает *:32030, в config.json персистентно (inbounds=2: api-tunnel + 32030). Server-side e2e (xray-клиент на сервере → 32030 → exit) подтверждён: трафик выходит с сервера (IPv4 130.17.17.158 / IPv6 2a02:6b40:2000:3505::1).
| Порт | Протокол | Статус |
|---|---|---|
| 32030 | VLESS / tcp, security=none |
🟢 сервер-сайд работает. uuid f3a0dda0-… (email vitya). DPI-детектируем (как и на NL), но живой. |
| 37601 | 3x-UI panel (http) | 🟢 |
| 2096 | sub server | 🟢 |
| 22 | ssh | 🟢 |
Reality / MTProto / SOCKS5 намеренно НЕ подняты — на nl-vds-3xui у боевых клиентов из РФ они не заработали (см. nl-vds-3xui-setup-2026-06-05); порты зря торчать не должны.
Клиент для друзей
Hiddify / v2rayN / v2rayNG — импорт vless://f3a0dda0-947b-4a11-b3f5-ca973640f843@130.17.17.158:32030?type=tcp&security=none&encryption=none#de-vless-32030. При включённом VPN в Telegram прокси не настраивать (моб. «отключить прокси», десктоп «системный»). Полная ссылка/QR — pass de-vds-3xui/full-env.
Подводные камни (3x-ui 3.5.0 — NEW vs NL-сессии 3.2.7)
Установка на Germany оказалась нетривиальной из-за новой версии 3x-ui — на NL стояла 3.2.7, тут 3.5.0, и API/DB-модель поменялась. Зафиксировать, чтобы не повторяться:
- CSRF на ВСЕХ panel POST.
CSRFMiddleware→ без валидногоX-CSRF-Token(header) →403 Forbiddenс пустым телом + CSP-nonce. Логин-хендлер тут ни при чём (он отдаёт 200+JSON даже при неудаче). Токен:GET {webBasePath}csrf-token(публичный, кладёт токен в session-cookie) → вернуть тем же заголовком. Сначала это выглядело как «битые креды» — на деле 403 = отсутствие CSRF-токена. - login route:
POST {webBasePath}login, JSON-тело{"username","password"}(form-encoded ≠). 404 на/login(роут только под basePath), 403 на{BP}loginбез CSRF. - Прямой INSERT в
inboundsНЕ рендерит инбаунд в xray-config в 3.5.0. Клиентская модель разнесена по таблицамclients/client_inbounds/client_traffics; эти записи заполняются только сервисомAddInbound(через panel API/UI), а не raw-SQL. Я дважды вставлял инбаунд вinbounds(даже с эталонным JSON, скопированным с рабочего nl-vds 32030) — x-ui видел «Normalized sub_sort_index on 1 inbound(s)», но вconfig.jsonинбаунд не попадал, xray не слушал. Лекарство — panel API, не БД. - stream_settings naming:
"tcpSettings"(не"tcp"), с"header":{"type":"none"};sniffing={"enabled":false}; vlesssettings={clients, decryption:"none", encryption:"none", testseed:[900,500,900,256]}. Эталон снят с рабочего инбаунда nl-vds-3xui 32030. - API add endpoint:
POST {BP}panel/api/inbounds/add, body =model.Inbound(camelCase:remark,enable,port,protocol,listen,tag,settings,streamSettings,sniffing,shareAddrStrategy,...);settings/streamSettings/sniffing— stringified JSON (строки, не вложенные объекты). x-ui settingчерез wrapper НЕ применяет-username/-password(команда печатает меню, но users-таблицу не меняет). Надо дёргать бинарник напрямую:systemctl stop x-ui; /usr/local/x-ui/x-ui setting -username … -password …; systemctl start x-ui→ «Username and password updated successfully». Иначе логин сбросит «Invalid username or password».- 3.5.0 hot-applies новые инбаунды к работающему xray (xray начинал слушать 32030 ещё до rewrite
config.json); послеx-ui restartconfig.json переписывается из БД и инбаунд персистентен. - Install v3.5.0 автогенерит рандомные panel user/pass/port/webBasePath (
hasDefaultCredential:false) + ставит fail2ban — лучше старых версий, но plaintext пароля недоступен (bcrypt) → всё равно перевыставлять через бинарник.
Проверено / не проверено
- ✅ Сервер-сайд: xray слушает 32030, локальный xray-клиент через тоннель выходит с сервера.
- ⏳ Реальный клиент из РФ НЕ проверен. По уроку
proxy-debugging-test-the-real-clientмой сервер-сайд тест — НЕ доказательство для боевого клиента. Но протокол — plain VLESS (единственный, гарантированно работавший на NL), поэтому уверенность высокая. Ждём подтверждения от user (v2rayN/Hiddify/телефон).
Открытые хвосты
- Per-friend UUID (сейчас один —
vitya). Заводить через панель при раздаче. - panel на http:3637601 — рассмотреть SSH-tunnel-only или LE-сертификат (опция 20 меню), пока компенсирует random path + fail2ban.
- Бэкап
x-ui.dbв pipeline (как на backup-inventory-2026-06 для nl-vdsx-ui.db) — не заведён.