Files
wiki/tasks/proxy-vm/PROJECT.md
2026-04-12 21:55:33 +03:00

9.3 KiB
Raw Blame History

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

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:
    # Шаг 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

Доступ

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)

# 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

  • Задача #1: Transparent proxy работает (12.04.2026 — nat REDIRECT + MSS clamp)
  • redsocks не используется (несовместим с xtls-rprx-vision)
  • iptables сохранены в rules.v4, netfilter-persistent enabled
  • sysctl rp_filter=0 + ip_forward=1 персистентны
  • После рестарта всё поднимается автоматически
  • /homeassistant/custom_components/set_proxy/ — не найдено (already gone)
  • Удалены устаревшие файлы с 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