# ProxyVM — Документация проекта **Статус:** active **Дата запуска:** 04.04.2026 **Обновлено:** 12.04.2026 (12:04 UTC) --- ## Цели проекта 1. **Задача #1: Homenet-VPN** — Wi-Fi сеть 192.168.4.0/24, TCP трафик через Xray VLESS Reality (прозрачный прокси). UDP/443 (QUIC) — напрямую. Статус: **ГОТОВО** ✅ (12.04.2026) 2. **Задача #2: HA Telegram** — Home Assistant отправляет Telegram-уведомления через VLESS. Остальной трафик HA — напрямую. Статус: **ГОТОВО** ✅ --- ## Задача #2 — HA Telegram через VLESS (ЗАВЕРШЕНА ✅) **Дата:** 10.04.2026 ### Схема работы ``` Home Assistant (192.168.2.139, gateway = Keenetic 192.168.2.1) │ │ SOCKS5 proxy (только telegram_bot интеграция) ▼ vpn-srv SOCKS5 (192.168.2.200:1080) ← Xray │ │ VLESS Reality (xtls-rprx-vision) ▼ VLESS Server (43.245.226.231:53903) │ ▼ api.telegram.org ``` Важно: только `telegram_bot` интеграция ходит через прокси. Остальной трафик HA идёт напрямую через Keenetic. ### Конфигурация в HA Интеграция `telegram_bot` настроена через UI (Настройки → Интеграции → Telegram Bot): | Параметр | Значение | |----------|----------| | Platform | polling | | API Key | `8251509944:AAGkRr_5ZIIQNd4XrlI5QI9DYZS8JUPhcxY` | | Proxy URL | `socks5://192.168.2.200:1080` | | API Endpoint | `https://api.telegram.org` | | Allowed Chat ID | 126472752 (Слава) | | Config Entry ID | `01KNVZDDM3ZNJS1WX309K7E1EN` | ### Бот - **Username:** `@ha542_bot` - **Bot ID:** 8251509944 - **Notify Entity:** `notify.telegram_bot_8251509944_126472752` ### Как отправить сообщение из HA ```yaml service: notify.send_message target: entity_id: notify.telegram_bot_8251509944_126472752 data: message: "Текст уведомления" ``` Или через Developer Tools → Services. ### Доступ к HAOS - **URL:** `https://ha.homenet542.keenetic.pro` - **IP в LAN:** 192.168.2.139 - **HAOS Version:** 17.1 | HA Core: 2026.3.4 - **HA Token:** `HA_TOKEN` в `~/.openclaw/.env` - **SSH через vpn-srv:** ```bash # Шаг 1: Скопировать ключ на vpn-srv scp -i /home/node/.openclaw/ha_ssh_key -P 3322 /home/node/.openclaw/ha_ssh_key vpn@185.130.212.192:/tmp/ha_key # Шаг 2: SSH к HA ssh -i /home/node/.openclaw/ha_ssh_key -p 3322 vpn@185.130.212.192 \ "ssh -i /tmp/ha_key root@192.168.2.139" ``` --- ## Задача #1 — Wi-Fi Homenet_vpn transparent proxy (ГОТОВО ✅ 12.04.2026) **Цель:** Устройства в сети 192.168.4.0/24 (телевизор и др.) автоматически используют VLESS прокси без настройки на устройстве. ### Архитектура (финальная, рабочая) ``` Телевизор/телефон │ │ Wi-Fi "Homenet_vpn" (SSID) ▼ Keenetic (DHCP: gateway=192.168.4.1, DNS=192.168.4.1) │ │ VLAN/bridge → ens19 ▼ vpn-srv (192.168.4.1 на ens19) │ │ iptables nat REDIRECT → port 12345 ▼ Xray dokodemo-door:12345 (tproxy=redirect, followRedirect=true) │ │ VLESS Reality (xtls-rprx-vision) ▼ VLESS Server (43.245.226.231:53903) │ ▼ 🌐 Internet ``` **Что работает:** DNS (UDP/53 → 1.1.1.1 напрямую), TCP → VLESS ✅, Telegram ✅, YouTube ✅ **UDP/443 (QUIC):** RETURN — не проксируется (браузер откатывается на TCP автоматически) **MTU/MSS:** зажат до 1280 (TCPMSS clamp) — без этого Telegram/YouTube не работали ### Почему REDIRECT, а не TPROXY Пробовали оба режима 12.04.2026: - **TPROXY** (`iptables -t mangle TPROXY + ip rule fwmark`) — пакеты получали mark, но до Xray не доходили (проблема с routing table 100 + ядро переопределяло маршрут как `local`) - **REDIRECT** (`iptables -t nat REDIRECT`) — работает сразу, проще, надёжнее Итоговый выбор: **nat REDIRECT**. redsocks не используется (несовместим с xtls-rprx-vision). --- ## Инфраструктура vpn-srv ### Доступ ```bash ssh -i /home/node/.openclaw/ha_ssh_key -o StrictHostKeyChecking=no -p 3322 vpn@185.130.212.192 # sudo через пайп: echo meNt85doC | sudo -S <команда> ``` | Параметр | Значение | |----------|----------| | IP (LAN) | 192.168.2.200/24 (ens18) | | IP (VPN subnet) | 192.168.4.1/24 (ens19) | | OS | Ubuntu 22.04 | | Sudo password | meNt85doC | ### Сервисы на vpn-srv | Сервис | Порт | Статус | |--------|------|--------| | frpc | → relay:7000 | ✅ enabled | | xray | 12345 (redirect), 1080 (socks5), 8888 (http) | ✅ enabled | | redsocks | — | ❌ не используется (удалить) | | netfilter-persistent | — | ✅ enabled | ### FRP туннель - **relay:** `185.130.212.192:7000`, token: `frp_vpnsrv_2026_secret` - **SSH через relay:** порт 3322 → vpn-srv:22 - **relay root SSH:** `root@185.130.212.192`, пароль `AR5f7_T-bA` ### VLESS сервер ``` vless://009625cc-588f-4cba-941f-ab8c960efa04@43.245.226.231:53903 ?type=tcp&encryption=none&security=reality &pbk=fgKnOtQWS5FErVT8E-roZgQOG6XQzDxB9-N5pRoAyBI &fp=chrome&sni=yahoo.com&sid=d00e60e4&spx=%2F &flow=xtls-rprx-vision ``` ### Конфигурационные файлы | Файл | Описание | |------|----------| | `/etc/xray/config.json` | Конфиг Xray — dokodemo redirect + SOCKS5 + HTTP + VLESS out ✅ | | `/etc/iptables/rules.v4` | iptables — финальные правила (актуально 12.04.2026) ✅ | | `/etc/sysctl.d/99-tproxy.conf` | rp_filter=0, ip_forward=1 ✅ | | `/etc/frp/frpc.toml` | FRP клиент ✅ | | `/etc/netplan/99-vpn-alias.yaml` | IP 192.168.4.1 на ens19 ✅ | | `/etc/network/if-up.d/tproxy-routes` | ip rule для TPROXY (устарел, но безвреден) | | `/home/vpn/transparent-proxy.sh` | Скрипт tproxy (устарел, не используется) | ### iptables (финальное рабочее состояние, сохранено в rules.v4) ```bash # mangle: MSS clamp (критично для Telegram/YouTube) -A FORWARD -s 192.168.4.0/24 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1280 -A POSTROUTING -s 192.168.4.0/24 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1280 # nat: UDP/443 (QUIC) не проксируем — xtls-rprx-vision не поддерживает UDP -A PREROUTING -s 192.168.4.0/24 -p udp --dport 443 -j RETURN # DNS напрямую к 1.1.1.1 -A PREROUTING -s 192.168.4.0/24 -p udp --dport 53 -j DNAT --to-destination 1.1.1.1 # TCP → Xray -A PREROUTING -s 192.168.4.0/24 -p tcp -j REDIRECT --to-ports 12345 # MASQUERADE -A POSTROUTING -s 192.168.4.0/24 -j MASQUERADE -A POSTROUTING -s 192.168.2.0/24 -j MASQUERADE ``` ✅ **rules.v4 актуален** — сохранён 12.04.2026 12:04 UTC --- ## TODO - [x] **Задача #1:** Transparent proxy работает ✅ (12.04.2026 — nat REDIRECT + MSS clamp) - [x] redsocks не используется (несовместим с xtls-rprx-vision) - [x] iptables сохранены в rules.v4, netfilter-persistent enabled ✅ - [x] sysctl rp_filter=0 + ip_forward=1 персистентны ✅ - [x] После рестарта всё поднимается автоматически ✅ - [x] `/homeassistant/custom_components/set_proxy/` — не найдено (already gone) ✅ - [x] Удалены устаревшие файлы с vpn-srv: transparent-proxy.sh, check.sh, install.sh, config.json, params.env ✅ --- ## Хронология | Дата | Событие | |------|---------| | 04.04.2026 | Создан сегмент Homenet_vpn в Keenetic, настроен Proxmox VLAN | | 05.04.2026 | Установлен Xray, настроен tproxy | | 10.04.2026 | Полная отладка: frpc, redsocks, netplan, iptables-persistent | | 10.04.2026 | DNS ✅, ping ✅, UDP ✅ — TCP через tproxy ❌ (конфликт flow) | | 12.04.2026 | Диагностика: найдена ошибка `"tproxy": "redirect"` в xray config | | 12.04.2026 | **Фикс:** исправлено на `"tproxy": "tproxy"`, Xray перезапущен, TCP заработал ✅ | | 12.04.2026 | TPROXY через mangle не заработал (routing table 100 / ядро) — переключились на nat REDIRECT | | 12.04.2026 | Telegram/YouTube не работали — фикс: MSS clamp 1280 (splice broken pipe) | | 12.04.2026 | **ПОЛНОСТЬЮ РАБОТАЕТ:** сайты ✅ Telegram ✅ YouTube ✅ — все конфиги сохранены | | 10.04.2026 | **Задача #2 DONE:** HA Telegram через SOCKS5 proxy → VLESS ✅ | _Хронология отсортирована по дате. Последнее обновление: 12.04.2026 12:08 UTC_