4.7 KiB
4.7 KiB
Proxy VM — VLESS Reality шлюз
Ubuntu VM в Proxmox для обхода РКН:
- HTTP прокси на порту
8888— для Telegram бота в Home Assistant - SOCKS5 на порту
1080— универсальный прокси - Прозрачный прокси (tproxy) — для телевизора без каких-либо настроек на нём
Протокол: VLESS + Reality (практически не определяется DPI).
Быстрый старт
1. Подготовить VM
Минимальные требования:
- Ubuntu 22.04 LTS (или 24.04)
- 1 vCPU, 512 MB RAM, 4 GB диск
- Статический IP
192.168.2.200(или настроить через DHCP-резервирование)
2. Скопировать файлы на VM
scp -r tasks/ha/proxy-vm/ user@192.168.2.200:~/proxy-vm/
ssh user@192.168.2.200
cd ~/proxy-vm
3. Заполнить параметры
cp params.env.example params.env
nano params.env # заполни все значения
Обязательные параметры:
VLESS_SERVER_IP=<IP сервера>
VLESS_UUID=<UUID>
VLESS_PUBLIC_KEY=<публичный ключ Reality>
VLESS_SHORT_ID=<short ID>
VLESS_SNI=www.microsoft.com
TV_SUBNET=192.168.3.0/24
4. Установить Xray
sudo bash install.sh
Скрипт:
- Установит Xray (последняя версия с GitHub)
- Сгенерирует
/etc/xray/config.jsonс твоими параметрами - Включит IP forwarding
- Создаст и запустит systemd сервис
xray
5. Настроить прозрачный прокси для TV
sudo bash transparent-proxy.sh
Скрипт:
- Настроит iptables tproxy для TV подсети
- Сохранит правила через iptables-persistent
- Создаст systemd сервис для восстановления маршрутов при ребуте
6. Настроить Keenetic
Читай KEENETIC.md — создать отдельный SSID TV_VPN с шлюзом 192.168.2.200.
7. Настроить Home Assistant
Добавь в configuration.yaml содержимое ha-telegram-config.yaml:
telegram_bot:
- platform: polling
api_key: "ВАШ_ТОКЕН"
proxy_url: http://192.168.2.200:8888
allowed_chat_ids:
- 126472752
Перезапусти HA.
8. Проверить
sudo bash check.sh
Структура файлов
proxy-vm/
├── TZ.md # Техническое задание
├── README.md # Эта инструкция
├── params.env.example # Шаблон параметров
├── install.sh # Установка Xray + systemd
├── transparent-proxy.sh # Настройка tproxy для TV
├── config.json # Шаблон Xray конфига (справочник)
├── ha-telegram-config.yaml # Фрагмент конфига для Home Assistant
├── check.sh # Проверка работоспособности
└── KEENETIC.md # Инструкция для роутера Keenetic
Troubleshooting
Xray не запускается:
journalctl -u xray -n 50 --no-pager
Прокси не работает:
curl -x http://127.0.0.1:8888 https://api.telegram.org
Tproxy не перехватывает трафик:
iptables -t mangle -L TV_TPROXY -nv # счётчики пакетов
ip rule show # правило для fwmark 1
ip route show table 100 # маршрут local default
Обновить Xray:
sudo bash install.sh # скрипт идемпотентен, установит новую версию
Как работает tproxy
Телевизор отправляет пакет (например, к youtube.com:443)
│
▼ iptables mangle PREROUTING → TV_TPROXY
Пакет помечается fwmark=1 + tproxy redirect на порт 12345
│
▼ ip rule: fwmark=1 → table 100 → local default via lo
Xray (dokodemo-door tproxy) получает пакет как будто он локальный
│
▼ Xray routing: outbound vless-out
VLESS Reality тоннель → сервер → youtube.com
DNS трафик (UDP 53) из TV подсети перенаправляется на 1.1.1.1 через DNAT,
но поскольку 1.1.1.1 не является private IP, он тоже пойдёт через VLESS.