Router Setup

watch.mrseven.netcraze.pro — AWG · Podkop · Tailscale · OpenWrt

Быстрый старт

Порядок настройки нового роутера с нуля: прошивка → AmneziaWG → Podkop → Tailscale → Watchdog.

ШагЧто делаемРаздел
1Прошить OpenWrt, зайти по SSH, сменить парольOpenWrt основы
2Установить AmneziaWG 3.1 + фид, перезагрузить роутерAmneziaWG
3Установить Podkop, настроить интерфейс и доменыPodkop
4Поднять Tailscale с --accept-dns=falseTailscale
5Поставить Watchdog одной командойWatchdog
6При необходимости — DNS-фиксы и фикс для ТВDNS-фиксы

OpenWrt основы

Доступ, бэкапы, логи и диагностика — то, что нужно на каждом роутере вне зависимости от VPN.

Подключение по SSH

Адрес по умолчанию — 192.168.1.1. При первом входе смените пароль: passwd.

ssh root@192.168.1.1

Веб-интерфейс LuCI

Открыть в браузере: http://192.168.1.1 — тот же логин/пароль, что и по SSH.

Резервная копия конфигурации

Собирает архив /etc/config и других системных настроек. Скачайте файл с роутера, прежде чем экспериментировать.

sysupgrade -b /tmp/backup-$(date +%F).tar.gz

Восстановление из бэкапа

Распаковать архив поверх текущей системы и перезагрузиться. Удобнее — через LuCI: System → Backup / Flash Firmware → Restore.

tar -C / -xzvf /tmp/backup-ФАЙЛ.tar.gz && reboot

Логи в реальном времени

logread -f

Последние 50 строк лога

logread | tail -50

Место на диске

df -h

Память

free

Список пакетов на обновление

opkg update && opkg list-upgradable

Обновить конкретный пакет

opkg update && opkg upgrade ИМЯ_ПАКЕТА

Маршруты и IP-адреса

ip route show; ip -4 addr
Перед апгрейдом прошивки — обязательно делайте бэкап конфига и держите под рукой кабель для восстановления по TFTP, если роутер поддерживает.

AmneziaWG 3.1

Ставится на чистый OpenWrt до Podkop. После установки — обязательная перезагрузка.

Установка AmneziaWG 3.1

sh <(wget -O - https://raw.githubusercontent.com/2Grey/awg-openwrt/refs/heads/master/amneziawg-install.sh)

Фид для AWG 3.1

sh <(wget -O - https://raw.githubusercontent.com/2Grey/awg-openwrt/refs/heads/master/amneziawg-feed-install.sh)

Статус интерфейса и хендшейк

Имя интерфейса зависит от роутера — замените awg0 на своё.

awg show awg0; awg show awg0 latest-handshakes
Важно: AmneziaWG — не обычный WireGuard. PassWall2 и обычные WireGuard-клиенты не умеют в обфускацию AWG (awg_jc, awg_h1-h4 и т.д.), для них нужен именно AWG-клиент или AWG-сервер.

Podkop

Роутер трафика на базе sing-box поверх AmneziaWG. Настройка — в LuCI → Services → Podkop.

Установка / обновление Podkop

sh <(wget -O - https://raw.githubusercontent.com/itdoginfo/podkop/refs/heads/main/install.sh)
CLI-команды Podkop
КомандаЧто делает
podkop get_sing_box_statusJSON-статус: запущен ли sing-box, настроен ли DNS
podkop check_fakeipПроверка механизма fake-ip
podkop list_updateОбновить списки доменов/правил маршрутизации
podkop restartПерезапуск
podkop stop / podkop startОстановить / запустить
Конфиг Podkop хранится в /etc/config/podkop. Список доменов — "type": "remote" rule-sets, которые sing-box скачивает с GitHub при каждом старте (из-за этого после обрыва сети на старте роутинг может не подняться — см. Watchdog).

Tailscale

Удалённый доступ к роутеру. Подними с --accept-dns=false, иначе Tailscale перехватит системный DNS.

Базовый запуск

tailscale up --accept-dns=false

+ принимать маршруты (exit node / subnet routes)

tailscale up --accept-dns=false --accept-routes

+ без netfilter (если свой firewall конфликтует)

tailscale up --accept-dns=false --netfilter-mode=off

Статус и список машин

tailscale status

Свой Tailscale IP

tailscale ip -4

Watchdog

Следит за тоннелем AmneziaWG и Podkop независимо друг от друга. Если тоннель не поднимается даже после перезапуска интерфейса — Podkop принудительно останавливается, чтобы не блокировать интернет, а восстановление идёт отдельным процессом каждые 5 минут.

Установка одной командой

Сам определяет интерфейс AmneziaWG, подбирает рабочий тестовый домен, создаёт все скрипты и настраивает crontab.

wget -O - https://watch.mrseven.netcraze.pro/install-watchdog-universal.sh | sh
Что проверять после установки
/root/podkop-watchdog.sh ; tail -20 /root/podkop_update.log
РасписаниеЧто делает
каждые 20 минутпроверка тоннеля и Podkop, перезапуск при сбое
каждые 5 минутвосстановление после полной остановки Podkop (только если тоннель лежит)
каждые 30 минутпроверка перехвата DNS Tailscale
вс в 03:00автообновление Podkop

DNS-фиксы

Два частых случая: Tailscale перехватывает системный DNS, либо российские сайты лучше резолвить напрямую через WAN.

Проверка, не перехватил ли Tailscale DNS

nslookup fakeip.podkop.fyi
Правильно: Server: 127.0.0.1. Если видите Server: 100.100.100.100 — DNS перехвачен Tailscale.

Исправление перехвата DNS

tailscale up --accept-dns=false
RU / su / РФ-домены — только через WAN напрямую

dnsmasq upstream-исключения: российские домены резолвятся через 77.88.8.8 (Яндекс DNS), минуя тоннель.

# 1. Очищаем весь список серверов
uci -q delete dhcp.@dnsmasq[0].server

# 2. Добавляем системный апстрим Подкопа
uci add_list dhcp.@dnsmasq[0].server='127.0.0.42'

# 3. Добавляем исключения без дублей
uci add_list dhcp.@dnsmasq[0].server='/.ru/77.88.8.8'
uci add_list dhcp.@dnsmasq[0].server='/.su/77.88.8.8'
uci add_list dhcp.@dnsmasq[0].server='/.xn--p1ai/77.88.8.8'
uci add_list dhcp.@dnsmasq[0].server='/yandex.net/77.88.8.8'
uci add_list dhcp.@dnsmasq[0].server='/yandex.com/77.88.8.8'
uci add_list dhcp.@dnsmasq[0].server='/yastatic.net/77.88.8.8'
uci add_list dhcp.@dnsmasq[0].server='/ya.ru/77.88.8.8'
uci add_list dhcp.@dnsmasq[0].server='/kinopoisk.ru/77.88.8.8'
uci add_list dhcp.@dnsmasq[0].server='/vk.com/77.88.8.8'
uci add_list dhcp.@dnsmasq[0].server='/vk.me/77.88.8.8'
uci add_list dhcp.@dnsmasq[0].server='/userapi.com/77.88.8.8'
uci add_list dhcp.@dnsmasq[0].server='/vkcache.com/77.88.8.8'
uci add_list dhcp.@dnsmasq[0].server='/mail.ru/77.88.8.8'
uci add_list dhcp.@dnsmasq[0].server='/mmail.ru/77.88.8.8'
uci add_list dhcp.@dnsmasq[0].server='/imgsmail.ru/77.88.8.8'
uci add_list dhcp.@dnsmasq[0].server='/gosuslugi.ru/77.88.8.8'
uci add_list dhcp.@dnsmasq[0].server='/uchi.ru/77.88.8.8'
uci add_list dhcp.@dnsmasq[0].server='/uchiru.net/77.88.8.8'

# 4. Сохраняем и перезапускаем dnsmasq
uci commit dhcp
/etc/init.d/dnsmasq restart

Фикс телевизоров

Для смарт-ТВ и устройств с зашитым DoH/DoT, которые игнорируют DNS роутера и обходят Podkop.

Создаёт резервную копию firewall перед изменением. Перехватывает весь DNS-трафик LAN на роутер и блокирует внешние DoT/DoH-резолверы.

Перехват DNS + блокировка DoT/DoH + disable_quic

cp /etc/config/firewall /etc/config/firewall.bak.$(date +%s) && \
uci add firewall redirect && \
uci set firewall.@redirect[-1].name='Intercept DNS LAN' && \
uci set firewall.@redirect[-1].src='lan' && \
uci set firewall.@redirect[-1].proto='tcp udp' && \
uci set firewall.@redirect[-1].src_dport='53' && \
uci set firewall.@redirect[-1].dest_port='53' && \
uci set firewall.@redirect[-1].target='DNAT' && \
uci add firewall rule && \
uci set firewall.@rule[-1].name='Block-DoT-LAN' && \
uci set firewall.@rule[-1].src='lan' && \
uci set firewall.@rule[-1].dest_port='853' && \
uci set firewall.@rule[-1].proto='tcp udp' && \
uci set firewall.@rule[-1].target='DROP' && \
for ip in 8.8.8.8 8.8.4.4 1.1.1.1 1.0.0.1 9.9.9.9; do \
  uci add firewall rule; \
  uci set firewall.@rule[-1].name="Block-DoH-$ip"; \
  uci set firewall.@rule[-1].src='lan'; \
  uci set firewall.@rule[-1].dest_ip="$ip"; \
  uci set firewall.@rule[-1].dest_port='443'; \
  uci set firewall.@rule[-1].proto='tcp'; \
  uci set firewall.@rule[-1].target='DROP'; \
done && \
uci commit firewall && \
service firewall restart && \
uci set podkop.settings.disable_quic='1' && \
uci commit podkop && \
/etc/init.d/podkop restart && \
echo SETUP_DONE

UCI шпаргалка

UCI — единая система конфигурации OpenWrt. Эти команды пригождаются вне зависимости от VPN-стека.

КомандаЧто делает
uci show networkпоказать всю секцию конфига целиком
uci get network.lan.ipaddrпрочитать одно значение
uci set network.lan.ipaddr='192.168.1.1'задать значение (в памяти, не применено)
uci commit networkсохранить изменения на диск
/etc/init.d/network restartприменить изменения сети
uci export > /root/full-backup.uciтекстовый бэкап всего конфига
uci revert networkотменить несохранённые изменения секции