docs: add OpenWrt + Podkop bypass setup for NIIKN

This commit is contained in:
2026-03-31 20:05:05 +00:00
parent 581ba80129
commit fd46ed5614

View File

@@ -0,0 +1,126 @@
# OpenWrt + Podkop — Обход блокировок НИИКН
## Схема работы
```
Клиент → MikroTik (192.168.1.1)
├── обычные сайты → интернет напрямую
└── заблокированные → 192.168.1.50 (OpenWrt) → AWG туннель → 78.17.4.225 (Финляндия)
```
**Если OpenWrt упадёт:** заблокированные сайты недоступны, остальной интернет и RDP работают штатно.
## OpenWrt VM (Proxmox НИИКН)
| Параметр | Значение |
|----------|----------|
| VMID | 101 |
| IP | 192.168.1.50 |
| Версия | OpenWrt 24.10.0 |
| Serial console | /var/run/qemu-server/101.serial0 на pve-niikn (192.168.1.201) |
| Root пароль | 1qaz!QAZ |
## AWG туннель (AmneziaWG)
| Параметр | Значение |
|----------|----------|
| Сервер | 78.17.4.225:39202 (контейнер amnezia-awg2) |
| Клиентский IP | 10.8.1.4/32 |
| Интерфейс | awg0 |
| Private key | jfqknYLvJKYp++cjJPxV/dn8IQNPyaPhR/2bc4PK5+4= |
| Public key (сервер) | cftJxWuBCyz9ZiLDi23ouMQNAky5aTAUZIRHNS6l7mc= |
| Preshared key | PiQ3bao3nSxQqJoiJugAG77ZjRXxorBS81YwoRaLzEc= |
### Параметры обфускации (сервер и клиент должны совпадать)
| Параметр | Значение |
|----------|----------|
| Jc | 5 |
| Jmin | 10 |
| Jmax | 50 |
| S1 | 148 |
| S2 | 21 |
| S3 | 0 (клиент не поддерживает S3/S4, сервер тоже выставлен в 0) |
| S4 | 0 |
| H1 | 1666291593 |
| H2 | 2114876545 |
| H3 | 2135310789 |
| H4 | 2140829733 |
> **Важно:** H-значения на сервере должны быть фиксированными числами (не диапазонами).
> Файл конфига сервера: `/opt/amnezia/awg/awg0.conf` внутри контейнера `amnezia-awg2` на 78.17.4.225.
## Podkop + sing-box
| Параметр | Значение |
|----------|----------|
| Версия | podkop v0.7.14 |
| Режим | VPN (connection_type=vpn) |
| Интерфейс | awg0 |
| Списки | russia_inside, telegram |
| disable_quic | 1 (блокировка QUIC — браузеры используют TCP) |
| LuCI плагин | luci-app-podkop |
| DNS (sing-box) | 127.0.0.42:53 (FakeIP 198.18.0.0/15) |
| DNS (dnsmasq) | 192.168.1.50:53 → форвардит в 127.0.0.42 |
### UCI конфигурация (/etc/config/podkop)
```
config settings 'settings'
option dns_type 'udp'
option dns_server '8.8.8.8'
option disable_quic '1'
list source_network_interfaces 'br-lan'
config section 'main'
option connection_type 'vpn'
option interface 'awg0'
list community_lists 'russia_inside'
list community_lists 'telegram'
```
## Настройка MikroTik (192.168.1.1)
### Добавленные маршруты
```
/ip route add dst-address=198.18.0.0/15 gateway=192.168.1.50 comment=podkop-fakeip
```
FakeIP диапазон (198.18.0.0/15) направляется через OpenWrt → sing-box перехватывает и пускает через AWG.
### DHCP — DNS для клиентов
```
/ip dhcp-server network set 0 dns-server=192.168.1.50
```
Клиенты получают DNS 192.168.1.50 (dnsmasq → sing-box FakeIP).
## Как работает FakeIP схема
1. Клиент запрашивает DNS для `instagram.com` → получает FakeIP `198.18.x.x`
2. Клиент открывает соединение на `198.18.x.x`
3. MikroTik смотрит таблицу маршрутов: `198.18.0.0/15 → 192.168.1.50`
4. Пакет приходит на OpenWrt → nftables ставит fwmark → tproxy → sing-box
5. sing-box знает реальный адрес (из FakeIP кэша) → подключается через awg0 → Финляндия
## Доступные списки podkop
Все списки из https://github.com/itdoginfo/allow-domains:
`russia_inside`, `russia_outside`, `telegram`, `youtube`, `meta`, `twitter`, `discord`, `tiktok`, `hdrezka`, `news`, `anime` и др.
Добавить список:
```sh
uci add_list podkop.main.community_lists=youtube
uci commit podkop
podkop restart
```
## Известные проблемы / Особенности
- `proto_amneziawg_check_installed: not found`баг в `/lib/netifd/proto/amneziawg.sh:298`, нефатальный, интерфейс поднимается
- `amneziawg-tools 1.0.20240213-r1` не поддерживает S3/S4 → выставить в 0 на сервере
- H-значения сервера должны быть фиксированными (не диапазонами `H1=x-y`)
- После перезагрузки: sing-box running, awg0 UP — `podkop status` = "not running" это нормально (podkop не демон)
- Битый feed убран из `/etc/opkg/customfeeds.conf`