From f4fab70c64aeb55f1475fed498574212aa155cfa Mon Sep 17 00:00:00 2001 From: dttb Date: Tue, 2 Jun 2026 15:15:51 +0300 Subject: [PATCH] =?UTF-8?q?openwrt-4/=D0=9E=D0=BB=D0=B8=D0=B2=D1=8C=D0=B5:?= =?UTF-8?q?=20FR-=D0=BD=D0=BE=D0=B4=D0=B0=20HOSTKEY=20Paris=20+=20AmneziaW?= =?UTF-8?q?G=20:44221,=20=D0=BA=D1=80=D0=B5=D0=B4=D1=8B,=20=D0=B3=D0=BE?= =?UTF-8?q?=D1=82=D0=BE=D0=B2=D1=8B=D0=B9=20awg0-=D0=BA=D0=BE=D0=BD=D1=84?= =?UTF-8?q?=D0=B8=D0=B3=20Cudy,=20=D1=80=D1=83=D0=BD=D0=B1=D1=83=D0=BA=20C?= =?UTF-8?q?anal+,=20=D1=85=D0=B5=D0=BD=D0=B4=D0=BE=D1=84=D1=84=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20code-server?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 (1M context) --- projects/openwrt-4/README.md | 28 ++- .../openwrt-4/canal-plus-setup-runbook.md | 229 ++++++++++++++++++ projects/openwrt-4/credentials.md | 72 ++++++ .../openwrt-4/session-handoff-2026-06-02.md | 37 +++ 4 files changed, 354 insertions(+), 12 deletions(-) create mode 100644 projects/openwrt-4/canal-plus-setup-runbook.md create mode 100644 projects/openwrt-4/credentials.md create mode 100644 projects/openwrt-4/session-handoff-2026-06-02.md diff --git a/projects/openwrt-4/README.md b/projects/openwrt-4/README.md index 41fed3f..f4964b3 100644 --- a/projects/openwrt-4/README.md +++ b/projects/openwrt-4/README.md @@ -1,14 +1,18 @@ --- date: 2026-05-06 +updated: 2026-06-02 type: project -status: stub -tags: [object, openwrt, netbird, client, todo, moscow, anonymous] -aliases: [OpenWrt_4, openwrt-4, openwrt4] +status: active +tags: [object, openwrt, netbird, client, podkop, amneziawg, canal-plus, france, moscow] +aliases: [OpenWrt_4, openwrt-4, openwrt4, француз, canal+, Оливье, Olivier] --- -# OpenWrt_4 — анонимный клиентский OpenWrt в Москве +# OpenWrt_4 — Оливье (француз, Москва) — Cudy TR3000 -**Стаб-заметка**. Имя пира неинформативное (`OpenWrt_4`), нужно выяснить какого клиента он обслуживает. +Клиент — **Оливье** (француз), живёт в Москве. Cudy TR3000 с podkop + AmneziaWG + NetBird. Нужен обход РКН для дома **и Canal+** (myCanal гео-блочит по IP → требуется **французский выход**, которого в инфре не было → подняли FR VPS + AmneziaWG, см. креды). + +> 📋 **Выезд/настройка (смена провайдера + Canal+): [[canal-plus-setup-runbook]]** · 🔑 **Доступы/ключи: [[credentials]]**. +> Один `awg0` → **FR VPS `151.243.217.139`** (HOSTKEY Paris, AmneziaWG :44221). Дом — podkop `meta`/`youtube`/`telegram` (⛔ не `russia_outside`). Canal+-приставка завёрнута целиком через `pbr` → Франция. ## Что известно (из NetBird) @@ -23,13 +27,13 @@ aliases: [OpenWrt_4, openwrt-4, openwrt4] ## Открытые вопросы -- [ ] **Кто хозяин?** — главный пробел -- [ ] Что роутер обслуживает -- [ ] Точный адрес в Москве -- [ ] LAN, провайдер, WAN -- [ ] Пароль/ключ доступа -- [ ] Стоит переименовать пир в NetBird на осмысленное имя +- [x] **Хозяин — Оливье** (француз, Москва) ✓ 2026-06-02 +- [ ] Точный адрес в Москве, новый провайдер (смена сегодня 21:30) +- [ ] LAN / WAN после смены провайдера +- [ ] Пароль роутера подтвердить на месте (вероятно `1qaz!QAZ`) +- [ ] Переименовать пир в NetBird `OpenWrt_4` → `Olivier` +- [ ] Проверить `kmod-amneziawg` на Cudy (сервер на AWG 1.5 — см. [[credentials#⚠️-совместимость-с-openwrt-cudy]]) ## Aliases для FTS -`OpenWrt_4`, `100.70.235.2`, openwrt-4, openwrt4. +`OpenWrt_4`, `Оливье`, `Olivier`, `100.70.235.2`, `151.243.217.139`, openwrt-4, openwrt4. diff --git a/projects/openwrt-4/canal-plus-setup-runbook.md b/projects/openwrt-4/canal-plus-setup-runbook.md new file mode 100644 index 0000000..beb5c9f --- /dev/null +++ b/projects/openwrt-4/canal-plus-setup-runbook.md @@ -0,0 +1,229 @@ +--- +date: 2026-06-02 +type: runbook +status: active +tags: [openwrt, podkop, amneziawg, canal-plus, france, pbr, netbird, client, runbook] +aliases: [OpenWrt_4 Canal+, canal-plus-runbook, француз обход] +--- + +# OpenWrt_4 (француз, Москва) — обход + Canal+: рунбук выезда + +> **Контекст.** Клиент-француз в Москве. Cudy TR3000 (`OpenWrt_4`, NetBird `100.70.235.2`), podkop + AmneziaWG + NetBird. Завтра — **смена провайдера** + первичная настройка **Canal+**. +> **Главная зависимость:** Canal+ / myCanal гео-блочит по IP → нужен **французский IP**. У Олега франц-выхода не было (только Финляндия/Сингапур) → поднимаем **FR VPS + AmneziaWG**. +> **Устройство Canal+:** Apple TV / Smart TV / приставка (гео по IP) → **роутим устройство целиком** через FR-туннель (`pbr`), без гонки за доменами Canal+. +> Модель/грабли подкопа: [[../../snippets/podkop-reference]]. Диагностика: [[../../snippets/podkop-fakeip-diagnostics]]. + +--- + +## Архитектура (после настройки) + +``` +LAN + ├─ дом (телефоны/ПК) ── podkop FakeIP ─ meta/youtube/telegram → awg0 → ФРАНЦИЯ + │ РФ-сайты (gosuslugi/ozon/банки) ───────→ WAN напрямую + └─ Apple TV (Canal+) ── pbr: ВЕСЬ трафик источника ───────────→ awg0 → ФРАНЦИЯ +awg0 = AmneziaWG до нового FR VPS. EXIT один — Франция (она дотягивается и до YouTube/Meta, и до Canal+). +``` + +**Почему один французский выход, а не финский+отдельно Canal+:** Франция открывает и заблокированное РКН (YT/Meta/TG), и Canal+. Два туннеля городить не нужно. ⛔ `russia_outside` НЕ ставить — клиент в РФ, сломает РФ-сайты. + +--- + +## Фаза 0 — СЕГОДНЯ: поднять FR VPS + AmneziaWG-сервер + +### 0.1 VPS — выбор провайдера +**Требования:** KVM (не OpenVZ — нужен `/dev/net/tun`), Ubuntu 22.04/24.04, 2 vCPU / 2 GB / 20–40 GB NVMe, порт ≥100 Mbps, **безлимит или ≥2 TB трафика** (HD-стрим ~6 Mbps ≈ 8 ГБ/час). IP именно французский. + +| Провайдер | Локация | Оплата из РФ | Почему | +|---|---|---|---| +| **HOSTKEY Paris** ⭐ рекоменд. | Paris PAR3 (Vélizy) | ✅ твой аккаунт (Финляндия там же), карта/крипта | instant, панель знакома, 1–10 Gbps. Минус: датацентр-IP — Canal+ может забанить → ротация/фолбэк ниже | +| **Aeza Paris** — резерв/тест | Paris | ✅ RU-карты/SBP/Tinkoff/крипта, €0.02/час | instant, **другой ASN** для проверки гео. Минус: под санкциями OFAC-2025 + жалобы на стабильность — не как постоянный | +| OVH / Scaleway | Roubaix / Paris | ⚠️ нужна НЕ-российская карта | лучшая инфра: Scaleway — безлимит исходящего; OVH — докупка до 16 IP (удобная ротация при бане). Брать если есть зарубежная карта | + +**Если IP во франц-бане Canal+** («недоступно в регионе»): (1) запросить другой IP у хостера / докупить (OVH +16 IP), (2) поднять Aeza Paris почасово и проверить другой ASN, (3) гарантированный фолбэк — IPRoyal `country-fr` residential ([[../../snippets/iproyal-gost-relay]]). +Hetzner/Contabo **не годятся** — нет Франции. + +### 0.2 AmneziaWG-сервер — **разворачивает Олег через приложение AmneziaVPN** (Claude не ставит вручную) +> Договорённость: сервер поднимает Олег сам приложением, Claude работает с уже готовым сервером (конвертация конфига, проверка, podkop+pbr, диагностика). Никаких самосборных amneziawg-go от Claude. + +Олег в приложении **AmneziaVPN**: +1. Добавить сервер по SSH: `151.243.217.139`, root + пароль (приложение само развернёт Docker-стек). +2. Протокол — именно **AmneziaWG** (не OpenVPN/обычный WireGuard): DPI-устойчив для связки РФ→Франция. Обфускацию (Jc/S1/S2/H1–H4) и ключи приложение генерит само. +3. Сделать **отдельное подключение/клиент для роутера** («Cudy») и **экспортировать** его конфиг: «Настройки соединения → AmneziaWG/WireGuard» → текст `[Interface]/[Peer]` (или `.conf`). +4. Скинуть этот экспорт Claude. + +**Claude дальше:** из экспорта берёт `PrivateKey`/`Address`/`PublicKey`/`PresharedKey`/`Endpoint` + **точные** Jc/Jmin/Jmax/S1/S2/H1–H4 (как сгенерил app) и собирает OpenWrt-блок `awg0` (Фаза 3). Затем по SSH на ноду проверяет, что контейнер слушает и egress = FR. + +Проверка ноды (Claude, после деплоя): `ss -ulpn | grep -i awg` (порт слушает), `curl -s ipinfo.io/country` → `FR`, в Docker — контейнер amnezia-awg. + +> На выезд возьми из приложения: экспорт **AmneziaWG-конфига для роутера** (в нём `Endpoint :<порт>` и все ключи). Этого достаточно — Claude конвертнёт в UCI. + +--- + +## Фаза 1 — на месте: новый провайдер (WAN) + +```sh +# подключить WAN нового провайдера, поднять линк (DHCP / PPPoE / static — по провайдеру) +uci show network.wan; ifstatus wan | grep -E 'up|address' +ping -c3 1.1.1.1 # есть ли интернет вообще +``` +- **CGNAT/двойной NAT — не проблема:** туннель и NetBird исходящие, проброс портов не нужен. +- **MTU:** PPPoE → 1492. Если позже awg0 будет «грузить сайты наполовину» — см. Фазу 3 (MTU 1420→1380). +- Убедиться, что провайдер **не режет UDP/39202** (редко): `nc -zu 39202` или просто проверить handshake в Фазе 3. + +--- + +## Фаза 2 — на месте: вернуть NetBird (для управления и моих диагностик) + +```sh +netbird status # должен сам переподключиться (конфиг на месте), IP 100.70.235.2 +``` +- Если не поднялся / агент битый — **переэнроллить** (диаг-ключ ИСТЁК 2026-05-21, сперва перевыпустить): + ```bash + # перевыпуск ключа Claude-Diag (с любого хоста с интернетом): + curl -s -X POST -H "Authorization: Token nbp_YTEmAVpS0hLhnTeJ09q3wYaC0AAXjN21NPvM" \ + -H "Content-Type: application/json" \ + -d '{"name":"Claude Diagnostic","type":"reusable","expires_in":2592000,"auto_groups":["d7jra32fadhs73dmqv5g"],"usage_limit":0,"ephemeral":false}' \ + https://api.netbird.io/api/setup-keys + # на роутере: + netbird up --setup-key <НОВЫЙ_КЛЮЧ> + ``` +- Агент старый (`0.50.2`). Обновлять **только если** не подключается (не чинить рабочее). Как поднимется — пинг мне `ssh root@100.70.235.2`, дальше помогу вживую. + +--- + +## Фаза 3 — на месте: клиент awg0 → французский VPS + +**Сначала проверь, что proto умеет AWG 1.5** (сервер на 1.5: H-диапазоны/S3/S4/I1): +```sh +grep -oE 'awg_(s[1-4]|h[1-4]|i[1-5])' /lib/netifd/proto/amneziawg.sh | sort -u +opkg list-installed | grep amneziawg +``` +- Видишь `awg_s3 awg_s4 awg_i1` → ставь блок ниже целиком. +- НЕТ их → handshake не встанет (H заданы диапазонами). Тогда: `opkg update && opkg install kmod-amneziawg amneziawg-tools luci-proto-amneziawg` → повтори. Если свежего пакета нет → Олег перегенерит сервер в приложении проще (одиночные H, без S3/S4/I) и пришлёт новый экспорт. + +```sh +# === Готовый клиент Оливье (10.8.1.3) → FR-нода 151.243.217.139:44221 === +uci set network.awg0=interface +uci set network.awg0.proto='amneziawg' +uci set network.awg0.private_key='3JMaqHzXmGjKRoRSpSluPu6N9hPO/PssjCH4rp6Q+lw=' +uci -q delete network.awg0.addresses +uci add_list network.awg0.addresses='10.8.1.3/32' +uci set network.awg0.mtu='1420' +# classic-обфускация (есть в любой версии proto): +uci set network.awg0.awg_jc='5' +uci set network.awg0.awg_jmin='10' +uci set network.awg0.awg_jmax='50' +uci set network.awg0.awg_s1='97' +uci set network.awg0.awg_s2='99' +uci set network.awg0.awg_h1='525652870-1032659689' +uci set network.awg0.awg_h2='2143742042-2146202402' +uci set network.awg0.awg_h3='2146939599-2147410002' +uci set network.awg0.awg_h4='2147455965-2147472644' +# AWG 1.5 (ставить ТОЛЬКО если proto поддерживает — см. проверку выше): +uci set network.awg0.awg_s3='63' +uci set network.awg0.awg_s4='7' +uci set network.awg0.awg_i1='' + +uci set network.awg0_peer=amneziawg_awg0 +uci set network.awg0_peer.public_key='wyN+ob6bWvDsBHw6gVBO11YmpG1kYVO6OqnGtwJx5zs=' +uci set network.awg0_peer.preshared_key='eRtyuG6UdQqKxKK/lmWkosR3n0PUNUH9u45CXVNnsS8=' +uci set network.awg0_peer.endpoint_host='151.243.217.139' +uci set network.awg0_peer.endpoint_port='44221' +uci add_list network.awg0_peer.allowed_ips='0.0.0.0/0' +uci set network.awg0_peer.route_allowed_ips='0' # ВАЖНО: awg0 НЕ глобальный дефолт — рулят podkop и pbr +uci set network.awg0_peer.persistent_keepalive='25' +uci commit network + +# awg0 в WAN-зону (иначе трафик не уходит и нет SNAT) — найди индекс wan-зоны: +uci show firewall | grep -E "zone\[.*\].name" +uci add_list firewall.@zone[1].network='awg0' # подставь правильный индекс wan! +uci commit firewall +/etc/init.d/network restart && /etc/init.d/firewall reload +``` + +**Проверка туннеля + что выход именно французский:** +```sh +awg show awg0 # handshake < 2 мин, rx/tx растут +curl -4 -s --max-time 5 --interface awg0 https://ipinfo.io/country # → FR (ключевой тест!) +curl -4 -s --max-time 5 https://ifconfig.me; echo # WAN = РФ-IP (для сравнения) +``` +- Нет handshake → порт/UDP режется DPI нового провайдера или опечатка в ключах/H-параметрах. H1–H4 — точные числа, не диапазоны. +- Сайты грузятся наполовину → `ping -M do -s 1380 8.8.8.8 -I awg0`; если фрагментация — MTU awg0 1420→1380. + +--- + +## Фаза 4 — на месте: podkop (обход РКН для дома) + +```sh +uci set podkop.main.connection_type='vpn' +uci set podkop.main.interface='awg0' +uci set podkop.settings.disable_quic='1' # ОБЯЗАТЕЛЬНО +# списки — точечные; ⛔ НИКОГДА russia_outside (клиент в РФ): +for L in meta youtube telegram; do uci add_list podkop.main.community_lists="$L"; done +uci -q del_list podkop.main.community_lists='russia_outside' +uci commit podkop && /etc/init.d/podkop restart +``` +Проверка FakeIP: `nslookup www.instagram.com 192.168.1.1` → `198.18.x.x`; `nslookup gosuslugi.ru 192.168.1.1` → **реальный** IP (РФ-сайт мимо туннеля). DNS-цепочка: `LAN→dnsmasq:53→127.0.0.42`, `noresolv=1`. + +--- + +## Фаза 5 — на месте: Canal+ устройство → Франция целиком (pbr) + +**5.1 Статический лиз для приставки** +```sh +uci add dhcp host +uci set dhcp.@host[-1].name='canaltv' +uci set dhcp.@host[-1].mac='' # Settings → Network → посмотреть MAC +uci set dhcp.@host[-1].ip='192.168.1.50' +uci commit dhcp && /etc/init.d/dnsmasq restart +``` + +**5.2 pbr: весь трафик 192.168.1.50 → awg0** +```sh +opkg update && opkg install pbr luci-app-pbr +uci set pbr.config.enabled='1' +uci add pbr policy +uci set pbr.@policy[-1].name='CanalTV_FR' +uci set pbr.@policy[-1].src_addr='192.168.1.50' +uci set pbr.@policy[-1].interface='awg0' +uci commit pbr && /etc/init.d/pbr restart +/etc/init.d/pbr status # политика должна зарезолвиться (awg0 online) +``` + +**5.3 Приставку увести с FakeIP (иначе FakeIP-домены уедут в awg0 и сломаются на ней).** +Самое надёжное и быстрое — задать DNS прямо на приставке: +> Apple TV: Настройки → Сеть → (Wi-Fi/Ethernet) → Конфигурация DNS → **Вручную → 1.1.1.1**. +DNS-запрос тоже уйдёт через Францию (pbr) → вернутся реальные IP, маршрутизируемые в awg0. На приставке выключи любой DoH/VPN-профиль. +*(Альтернатива «всё на роутере» — tagged dhcp-option DNS для этого хоста; делать только если не хочешь трогать приставку.)* + +**Если НЕ хочешь pbr** (Plan B, по доменам): добавь домены Canal+ в `user_domains` подкопа (поймав их вживую): +```sh +tcpdump -i br-lan -n 'udp port 53 and host 192.168.1.50' & # запусти приложение Canal+ — собери хосты +uci set podkop.main.user_domain_list_type='dynamic' +for d in mycanal.fr canalplus.com canal-plus.com <добавить пойманные>; do + uci add_list podkop.main.user_domains="$d"; done +uci commit podkop && /etc/init.d/podkop restart +``` +Минус Plan B — легко пропустить CDN/DRM-хост → плеер падает. Для приставки pbr надёжнее. + +--- + +## Фаза 6 — на месте: проверка Canal+ + +1. На приставке (или `curl` с роутера от её таблицы) публичный IP = **французский**. +2. Запусти myCanal → должно определить Францию → live + VOD играют. +3. **«Недоступно в вашем регионе»** → IP VPS во франц-бане: + - сменить франц-сервер/пересоздать VPS-IP, **или** временно завернуть приставку через IPRoyal `country-fr` ([[../../snippets/iproyal-gost-relay]]). +4. Тормозит/буферит → MTU (Фаза 3) или маловат VPS — проверить `iperf3` до VPS. + +--- + +## Фаза 7 — после: задокументировать +- [ ] Заполнить [[README]]: доступы Cudy, ``, ключи, MAC приставки. +- [ ] Дописать строку в инвентарь [[../../snippets/podkop-reference#9-инвентарь-podkop-по-объектам]] (объект `OpenWrt_4`, EXIT=Франция, Canal+ через pbr). +- [ ] Переименовать пир в NetBird `OpenWrt_4` → осмысленно. +- [ ] Решение в `decisions/2026-06-02-openwrt4-canal-plus-france.md`. + +## Чек-лист «взять с собой» +`` · `server.pub` · `client.key` · `psk` · перевыпущенный NetBird-ключ (если понадобится) · MAC приставки. diff --git a/projects/openwrt-4/credentials.md b/projects/openwrt-4/credentials.md new file mode 100644 index 0000000..fe5767c --- /dev/null +++ b/projects/openwrt-4/credentials.md @@ -0,0 +1,72 @@ +--- +date: 2026-06-02 +type: credentials +status: active +tags: [openwrt-4, olivier, credentials, vps, hostkey, amneziawg, france, canal-plus] +aliases: [Olivier creds, openwrt-4 credentials, fr-vmnano, 151.243.217.139, Оливье креды] +--- + +# OpenWrt_4 / Оливье — креды + +> Клиент: **Оливье** (француз, Москва). Роутер Cudy TR3000 = NetBird `OpenWrt_4`. Французская выходная нода для обхода РКН + **Canal+**. Рунбук: [[canal-plus-setup-runbook]] · проект: [[README]]. + +## Французский VPS — выходная нода (HOSTKEY Paris) +| Параметр | Значение | +|---|---| +| IP | `151.243.217.139` | +| Hostname | `fr-vmnano` | +| Провайдер / ASN | **HOSTKEY B.V.** AS57043, Paris PAR3 (Vélizy) | +| Гео | FR (Paris) — MaxMind/ipinfo/geojs = **FR**; RIPE inetnum зарегистрирован **NL** (лизованный блок, гео «догоняет»); ip-api протухший US | +| OS / virt | Ubuntu 22.04.5 LTS, **KVM**, `/dev/net/tun` ✓ | +| Ресурсы | 2 vCPU / 1.8 GB RAM / 58 GB NVMe | +| **SSH** | `ssh root@151.243.217.139` пароль **`jIKk7U-Vn-`** | + +## AmneziaWG-сервер (развёрнут приложением AmneziaVPN, 2026-06-02) +- Docker-контейнер **`amnezia-awg2`**, слушает **UDP 44221** (`0.0.0.0:44221`). +- Протокол **AmneziaWG 1.5** (продвинутая обфускация: H-диапазоны, S3/S4, I1 = iCloud-mimic). ⚠️ совместимость с OpenWrt — см. ниже. +- Файлы в контейнере: `/opt/amnezia/awg/awg0.conf`, `wireguard_*_key.key`, `clientsTable`. + +### Ключи сервера +| | | +|---|---| +| Server **PublicKey** | `wyN+ob6bWvDsBHw6gVBO11YmpG1kYVO6OqnGtwJx5zs=` | +| Server **PrivateKey** | `cG1x+PTnszCDjQxqkzR7vKNI2vMRnwKdfMnD2Eo0s24=` | +| **PresharedKey** (общий на всех пиров) | `eRtyuG6UdQqKxKK/lmWkosR3n0PUNUH9u45CXVNnsS8=` | +| **Endpoint** (для клиентов) | `151.243.217.139:44221` | +| Внутренняя сеть | `10.8.1.0/24` | + +### Обфускация (должна 1:1 совпадать на клиенте) +``` +Jc=5 Jmin=10 Jmax=50 +S1=97 S2=99 S3=63 S4=7 +H1=525652870-1032659689 +H2=2143742042-2146202402 +H3=2146939599-2147410002 +H4=2147455965-2147472644 +I1= # фейк-DNS под icloud.com +``` + +### Пиры (clientsTable) +| IP | Имя | PublicKey | Чей | +|---|---|---|---| +| 10.8.1.1 | Admin [macOS Tahoe 26.5] | `UP9e4STNvLh8nDR2A13YBN0OGbKzTng7c9dK/TvnFic=` | Mac Олега | +| 10.8.1.2 | Admin [iOS 26.5] | `gKXG3SMO+wzkASo3MIqhXNtmngRr6Hq5q9uSZFK+AE8=` | iPhone Олега | +| 10.8.1.3 | (новый 2026-06-02) | `rbAob0v1xZFrehdDyBokOoOp89GEt7UJcoq7aqoD6Hk=` | **→ Cudy Оливье** (вероятно) | + +> Клиентские **приватные** ключи только в экспортах приложения AmneziaVPN (на сервере лежат лишь pubkey пиров). Для UCI-блока Cudy нужен **экспорт клиента 10.8.1.3** (там его PrivateKey + Endpoint + обфускация). + +## ⚠️ Совместимость с OpenWrt (Cudy) +Сервер на **AWG 1.5** (S3/S4 + H-диапазоны + I1-пакеты). `kmod-amneziawg` / `luci-proto-amneziawg` на Cudy должен это уметь, иначе **handshake не встанет** (грабля «H диапазоном»). На месте: `opkg list-installed | grep amneziawg`; если старое — обновить пакет, либо перегенерить сервер в приложении с обфускацией попроще (профиль один на всех пиров). + +## Роутер Cudy TR3000 (OpenWrt_4) +| Параметр | Значение | +|---|---| +| NetBird пир | `OpenWrt_4` | +| NetBird IP | `100.70.235.2` | +| SSH (через NetBird) | `ssh root@100.70.235.2` — пароль **уточнить на месте** (вероятно `1qaz!QAZ`, как на др. Cudy — не подтверждено) | +| OpenWrt | 24.10.3 | +| Назначение | podkop (`meta`/`youtube`/`telegram`) + Canal+-приставка целиком через FR (pbr) | + +## Прочее +- **SOCKS-тест гео** (временный): `ssh -D 1080 root@151.243.217.139` → проверка myCanal/france.tv реальным браузером через FR-выход. Снести после. +- NetBird диаг-ключ Claude-Diag **истёк** 2026-05-21 → перевыпустить при переэнролле роутера ([[../../.claude/projects/-Users-ai-knowledge-base/memory/reference_netbird_claude_diag|памятка]]). diff --git a/projects/openwrt-4/session-handoff-2026-06-02.md b/projects/openwrt-4/session-handoff-2026-06-02.md new file mode 100644 index 0000000..8f89d7e --- /dev/null +++ b/projects/openwrt-4/session-handoff-2026-06-02.md @@ -0,0 +1,37 @@ +--- +date: 2026-06-02 +type: handoff +status: active +tags: [openwrt-4, olivier, handoff, session, canal-plus, amneziawg, code-server] +aliases: [хендофф Оливье, openwrt-4 handoff] +--- + +# OpenWrt_4 / Оливье — хендофф сессии (2026-06-02) + +> Продолжение работы на **code-server** (LXC 132, `/root/knowledge-base`). Всё нужное — в этом репо (синк через Gitea). Память Claude (мои заметки) машинно-локальна и НЕ синкается — этот файл несёт состояние сессии. + +## Задача +Клиент **Оливье** (француз, Москва). Сегодня **21:30** — выезд: смена интернет-провайдера на Cudy TR3000 + первичный запуск **Canal+** (требует французского IP). + +## Сделано ✅ +- **FR-выходная нода:** `151.243.217.139` — HOSTKEY Paris (AS57043), Ubuntu 22.04 KVM. AmneziaWG развернул Олег приложением **AmneziaVPN** → контейнер `amnezia-awg2`, **UDP 44221**, сеть 10.8.1.0/24. +- **Гео проверено ✅:** через реальный Amnezia-туннель на эту ноду **france.tv отдаёт видео** (реплей Roland-Garros с пре-роллом) → IP принят как Франция → Canal+ по гео пройдёт. Остаточный риск — собственная анти-VPN-эвристика Canal+ (покажет только живой myCanal на приставке); фолбэк Aeza Paris / IPRoyal-fr. +- **Клиент Cudy** (10.8.1.3) экспортирован из приложения и переведён в OpenWrt-UCI. +- Проект де-стаблен, хозяин = Оливье. + +## Креды и конфиг (то, ради чего перенос) +- 🔑 **Доступы/ключи:** [[credentials]] — VPS `ssh root@151.243.217.139` / `jIKk7U-Vn-`; server-pub `wyN+ob6bWvDsBHw6gVBO11YmpG1kYVO6OqnGtwJx5zs=`; PSK `eRtyuG6UdQqKxKK/lmWkosR3n0PUNUH9u45CXVNnsS8=`; обфускация AWG 1.5; пиры. +- ⚙️ **Готовый awg0-блок для Cudy:** [[canal-plus-setup-runbook]] → **Фаза 3** (priv-ключ клиента 10.8.1.3 + endpoint `151.243.217.139:44221` + все параметры). + +## Осталось (на месте сегодня) +1. **Cudy на новом провайдере:** WAN, базовый интернет. NetBird вернуть (диаг-ключ Claude-Diag **истёк** 2026-05-21 → перевыпустить при переэнролле). +2. ⚠️ **Проверить AWG 1.5 на Cudy:** `grep -oE 'awg_(s[1-4]|h[1-4]|i[1-5])' /lib/netifd/proto/amneziawg.sh | sort -u`. Есть `awg_s3 awg_s4 awg_i1` → вставить awg0-блок как есть; нет → `opkg update && opkg install kmod-amneziawg amneziawg-tools luci-proto-amneziawg`, либо перегенерить сервер в приложении проще (одиночные H, без S3/S4/I) + новый экспорт. +3. awg0 в firewall WAN-зону; `awg show awg0` (handshake <2 мин) → `curl -4 --interface awg0 ipinfo.io/country` = **FR**. +4. **podkop:** `meta`/`youtube`/`telegram`, `disable_quic=1`, ⛔ **никогда `russia_outside`** (клиент в РФ). +5. **pbr (приставка Canal+ целиком → Франция):** статик-лиз приставке (напр. `192.168.1.50`) → политика `src 192.168.1.50 → awg0`; DNS на приставке вручную `1.1.1.1` (увести с FakeIP). Детали — рунбук Фаза 5. +6. **Тест Canal+** на приставке. «Недоступно в регионе» → Aeza Paris / IPRoyal-fr. + +## Разделение труда +Олег ставит/деплоит (приложение AmneziaVPN, клиенты). Claude работает с **готовым** сервером: конвертация в UCI, проверка туннеля, podkop+pbr, диагностика. Вручную AmneziaWG Claude не ставит. + +См. также: [[README]], [[canal-plus-setup-runbook]], [[credentials]], [[../../snippets/podkop-reference]].