Files
knowledge-base/decisions/2026-04-14-niikn-openwrt-awg-fix.md

5.6 KiB
Raw Permalink Blame History

date, type, tags
date type tags
2026-04-14 decision
decision
network

2026-04-14: Восстановление системы обхода блокировок НИИКН

Проблема

Система обхода блокировок на базе OpenWrt + AmneziaWG + Podkop не работала:

  • Заблокированные сайты (Instagram, WhatsApp, Telegram) недоступны
  • podkop check_proxy — timeout
  • AWG туннель: handshake устарел на 12+ часов
  • Пинг через туннель: 100% packet loss

Диагностика

1. Базовая проверка

# Finland VPS работает
ssh root@78.17.4.225  # ✓ OK
docker ps | grep amnezia-awg2  # ✓ UP 17 hours

# OpenWrt VM работает
ssh root@192.168.1.50  # ✓ OK
ip addr show awg0  # ✓ UP, IP: 10.8.1.4/32

# Podkop и sing-box запущены
podkop get_status  # ✓ enabled
podkop get_sing_box_status  # ✓ running

2. Проблема с handshake

# На сервере
docker exec amnezia-awg2 wg show awg0 | grep 10.8.1.4
# latest handshake: 12 hours, 14 minutes, 45 seconds ago
# endpoint: 176.62.183.186:63753  # СТАРЫЙ IP!

# Текущий IP НИИКН
curl ifconfig.me
# 202.71.12.186  # IP ИЗМЕНИЛСЯ!

Вывод: IP изменился, туннель не может обновить endpoint на сервере.

3. Проверка connectivity

# Пинг до Finland VPS
ping -c 3 78.17.4.225
# 100% packet loss  # Но это из-за ICMP DROP на сервере

# Пинг до Google DNS
ping -c 3 8.8.8.8
# 0% loss  # Интернет работает

# tcpdump на сервере
tcpdump -i any -n 'udp port 39202'
# Пакеты приходят от 85.235.181.190 (другой клиент)
# НЕТ пакетов от 202.71.12.186 (НИИКН)

Вывод: OpenWrt не отправляет пакеты на Finland VPS.

4. Проверка firewall

# Firewall zones
uci show firewall | grep zone
# lan: network='lan'
# wan: network='wan' 'wan6'  # awg0 ОТСУТСТВУЕТ!

# nftables output chain
nft list chain inet fw4 output
# oifname "br-lan" jump output_lan
# oifname "awg0" jump output_wan  # Есть, но зона не настроена

Вывод: awg0 не добавлен в WAN firewall зону → пакеты не отправляются.

5. Проверка конфигурации AWG

uci show network.awg0
# private_key='jfqknYLvJKYp++cjJPxV...'  # СТАРЫЙ КЛЮЧ
# addresses='10.8.1.4/32'  # СТАРЫЙ IP

Вывод: Используется устаревшая конфигурация AWG.

Решение

1. Добавить awg0 в firewall WAN зону

ssh root@192.168.1.50
uci add_list firewall.@zone[1].network='awg0'
uci commit firewall
/etc/init.d/firewall reload

2. Обновить конфигурацию AWG

Новая конфигурация (из предоставленного файла):

  • IP: 10.8.1.16/32
  • Private key: 41XMQFlPlq6FU4EBhqjayPvcDQJU+c+WQjabqs3ILbI=
uci set network.awg0.private_key='41XMQFlPlq6FU4EBhqjayPvcDQJU+c+WQjabqs3ILbI='
uci set network.awg0.addresses='10.8.1.16/32'
uci commit network

3. Перезапустить интерфейс

ifdown awg0
sleep 2
ifup awg0

Результат

Проверка handshake

docker exec amnezia-awg2 wg show awg0 | grep 10.8.1.16
# peer: 10.8.1.16/32
# endpoint: 85.235.181.190:51940  # Новый endpoint
# latest handshake: 17 seconds ago  # ✓ РАБОТАЕТ!
# transfer: 6.80 KiB received, 17.16 KiB sent

Проверка connectivity

# Пинг через туннель
ping -c 3 -I awg0 8.8.8.8
# 0% loss, RTT ~23ms  # ✓ OK

# FakeIP DNS
nslookup instagram.com 127.0.0.42
# 198.18.0.239  # ✓ OK

# WhatsApp
nslookup web.whatsapp.com 127.0.0.42
# 198.18.0.4  # ✓ OK

Выводы

Основные причины проблемы

  1. awg0 не был в firewall зоне — пакеты блокировались на выходе
  2. Устаревшая конфигурация AWG — старый IP и приватный ключ

Критичные моменты

⚠️ ВАЖНО: awg0 ДОЛЖЕН быть добавлен в firewall WAN зону, иначе туннель не работает!

# Проверка
uci show firewall.@zone[1].network | grep awg0
# Должно быть: firewall.cfg03dc81.network='wan' 'wan6' 'awg0'

Что работает

  • AWG туннель: handshake актуален, transfer активен
  • WhatsApp (все домены) через обход
  • Instagram, Facebook, Threads через список "meta"
  • Telegram через обход
  • FakeIP DNS (198.18.0.0/15)
  • Podkop + sing-box

Документация обновлена

Команды для мониторинга

# Проверка туннеля на OpenWrt
ssh root@192.168.1.50 "ip addr show awg0 && ping -c 2 -I awg0 8.8.8.8"

# Проверка handshake на сервере
ssh root@78.17.4.225 "docker exec amnezia-awg2 wg show awg0 | grep -A 5 '10.8.1.16'"

# Проверка FakeIP
ssh root@192.168.1.50 "nslookup instagram.com 127.0.0.42"

Теги

#niikn #openwrt #amneziawg #podkop #bypass #firewall #fix