sanuzb Posted April 28 Posted April 28 (edited) Здравствуйте. Пытаюсь реализовать следующую схему: Keenetic (РФ) → VPS (Германия) → Keenetic (Узбекистан) → Интернет Цель: чтобы клиенты Keenetic в РФ выходили в интернет с IP узбекского провайдера. Оба роутера за NAT. 1. VPS (Ubuntu) Поднят WireGuard сервер Интерфейс: wg-uz Адрес: 10.77.0.1/24 Подключён клиент (роутер в Узбекистане) Handshake стабильный Пинг до клиента есть: ping -I wg-uz 10.77.0.2 Ответы приходят без потерь 2. Роутер в Узбекистане (Keenetic) Подключается к VPS как клиент (WireGuard1) IP: 10.77.0.2/32 Handshake есть, соединение стабильное NAT включён: ip nat Wireguard1 Default route через провайдера: ip route default FastEthernet0/Vlan2 Интернет с самого роутера работает нормально 3. Проверки На VPS: ping -I wg-uz 10.77.0.2 ✅ работает ping -I wg-uz 8.8.8.8 ❌ не работает curl --interface wg-uz ifconfig.me ❌ не работает При tcpdump видно: 10.77.0.1 → 8.8.8.8 ICMP echo request Но ответа нет Что уже пробовал Менял allow-ips на стороне Keenetic: 10.77.0.1 0.0.0.0/0 Добавлял статический маршрут до VPS через ISP Проверял NAT (он работает для локальных клиентов) Проверял firewall (явных блокировок нет) Пробовал менять security-level интерфейса Wireguard1 Что вызывает сомнение Похоже, что роутер: либо не выполняет NAT для трафика, пришедшего из WireGuard либо не возвращает ответ обратно в туннель Вопрос Как правильно настроить Keenetic в роли exit-ноды для WireGuard, если он сам является клиентом VPS (за NAT)? Конкретно интересует: Нужно ли включать «использовать для выхода в интернет» для WireGuard? Требуется ли отдельная настройка NAT/маршрутизации для трафика, пришедшего из туннеля? Поддерживает ли Keenetic (OS 5) вообще такую схему: входящий WG-трафик → NAT → выход в интернет Буду благодарен за пример рабочей конфигурации или указание, что в принципе в этой версии Keenetic это не реализуемо. Спасибо. P.S. Писал ИИ, бананами не бросаться. Edited April 28 by sanuzb Удалил дубли Quote
Werld Posted April 30 Posted April 30 Почему на кинетике адрес 10.77.0.2/32? Он тогда не имеет маршрута до 10.77.0.2. Проверьте в веб-интерфейсе кинетика пинг до 10.77.0.2. Скорее всего его не будет. Нужно маску сделать 24, раз такую выбрали. И еще на кинетике в узбекистане security-level на интерфейсе wireguard1 какой? Если он Public - надо разрешающие правила в межсетевом экране добавить. Quote
sanuzb Posted April 30 Author Posted April 30 В 30.04.2026 в 11:50, Werld сказал: Почему на кинетике адрес 10.77.0.2/32? Сейчас ситуация следующая. WG снес, поставил ASCWG. 1. Пир 10.8.5.2 - UZ роутер 2. Пир 10.8.5.1 - RU роутер. Оба подключены к одному контейнеру - ASC -awg c интерфейсом amn0. На двух роутерах стоит галка "Использовать для выхода в интернет" Далее: # Включаю форвардинг echo 1 > /proc/sys/net/ipv4/ip_forward # Трафик от РФ роутера направляем через УЗ роутер ip rule add from 10.8.5.1 lookup 100 ip route add default via 10.8.5.2 table 100 # NAT — маскарадинг для трафика идущего через УЗ iptables -t nat -A POSTROUTING -s 10.8.5.1 -o wg0 -j MASQUERADE Трафик доходит до UZ роутера, но не возвращается обратно.... root@vm52384:~# docker exec -it amnezia-awg sh / # # Проверим что есть / # ip rule show 0: from all lookup local 32765: from 10.8.5.1 lookup 100 32766: from all lookup main 32767: from all lookup default / # ip route show table 100 default via 10.8.5.2 dev wg0 / # iptables -L FORWARD -n Chain FORWARD (policy ACCEPT) target prot opt source destinationACCEPT all – 0.0.0.0/0 0.0.0.0/0ACCEPT all – 10.8.5.0/24 0.0.0.0/0ACCEPT all – 10.8.5.0/24 0.0.0.0/0ACCEPT all – 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED / # Что посоветуете дальше? Межсетевой экран на UZ роутере: Quote
vvfd Posted April 30 Posted April 30 (edited) uz роутер должен знать куда ему отправлять обратно трафик. На уз роутере нужно маршрут до сети ру роутера проложить в интерфейс wg + у wg соединения должны быть проставлены allowed ip. На сервере маршруты должен быть до обоих роутеров через интерфейс wg wg сервер должен знать, что за клиентами есть свои подсети, т.е. у клиента 10.8.5.1 в качестве allowed ip должна быть указана подсеть роутера. Со вторым роутером тоже самое + 0.0.0.0/0. зачем 100 таблица и дефолтный маршрут непонятно Edited April 30 by vvfd Quote
Werld Posted April 30 Posted April 30 (edited) Посоветую не заниматься ерундой с контейнером, который вы, вероятно, установили с помощью приложения Amn...VPN со смартфона, так как эта штука не задумывалась для каких-то сценариев со сложной маршрутизацией. Предлагаю вернуться к использованию wireguard, вы писали, что туннели работают. Если все-таки wg блокируют, то использовать awg, но без контейнера, а с ядерным модулем. Устанавливается используя короткую инструкцию прямо из их репозитория на гитхаб. Там все не сложно, с нейросетью справитесь. Если на сервере debian 13, то подключая по той инструкции репозиторий, измените https://ppa.launchpadcontent.net/.../ppa/ubuntu focal main на https://ppa.launchpadcontent.net/.../ppa/ubuntu noble main. Кроме того не все пакеты предустанавливаемые по инструкции - существуют для debian13, например, нет software-properties-common - это нормально, ставите что есть, идете дальше. Для debian 12 ничего менять не надо. Для ubuntu инструкция вполне актуальна. Все написанное далее должно быть актуально как для wg так и для awg. Рекомендую поднимать wg/awg с помощью wg-quick (соответственно awg-quick), тогда и маршруты нужные добавятся и можно заставить стартовать интерфейс с загрузкой системы (systemctl enable wg-quick@wg0). На сервере у вас будет два интерфейса один для соединения с кинетикомРУ, второй для соединения с кинетикомУЗ. Допустим адреса: КинетикРу 10.8.5.2/29-->wg0(10.8.5.1/29)<Сервер>wg1(10.8.5.100/29)<--КинетикУз(10.8.5.101/29). С адресами и масками внимательно, сети не должны пересекаться. На кинетикеРУ allowed ip = 0.0.0.0/0 На сервере: Интерфейс wg0 (куда подключается кинетикРУ): [Interface] Address = 10.8.5.1/29 ListenPort = Порт, который нужно открыть в фаерволе. PrivateKey = key1 [Peer] #KeeneticRU PublicKey = pubkey_from_KeeneticRU AllowedIPs = 10.8.5.2/32 --------- Интерфейс wg1 (куда подключается КинетикУЗ) тут посложнее: [Interface] Address = 10.8.5.100/29 ListenPort = Порт, который нужно открыть в фаерволе. PrivateKey = key2 Table = 1000 PostUp = ip rule add from 10.8.5.2 table 1000 PreDown = ip rule delete from 10.8.5.2 table 1000 [Peer] #KeeneticUZ PublicKey = pubkey_from_KeeneticUZ AllowedIPs = 0.0.0.0/0 --------- С таким конфигом wg1 система сама создаст таблицу 1000, поместит в нее маршрут по умолчанию через wg1, А дополнительные правила PostUp добавят правило маршрутизации. На кинетикеУЗ убрать галочку использовать для выхода в интернет. На кинетикеУЗ allowed ip = 10.8.5.2/32, 10.8.5.100/32 На кинетикеУЗ оставить правила в межсетевом экране, разрешающие входящие с адреса 10.8.5.2 на интерфейсе wireguard. На кинетикеУЗ добавить нат ip nat WireGuardx. На кинетикеУЗ придется добавить маршрут до 10.8.5.2 через интерфейс Wireguard. Описаная схема подразумевает выход для клиентов с КинетикаРУ в интернет за КинетикомУЗ. В обратную сторону идут только ответные пакеты. Выход для клиентов КинетикаУЗ в интернет за КинетикомРУ не предусмотрен. Доступ клиентам КинетикаРУ к домашней сети КинетикаУЗ не предусмотрен. Пробуйте. Возможно, что-то забыл упомянуть, так как давно уже такое не настраивал, писал из головы. Особенно касется КинетикаУЗ, возможно что-то для него еще упустил. Edited April 30 by Werld 1 Quote
0xkee Posted May 1 Posted May 1 On 4/28/2026 at 7:21 PM, sanuzb said: Вопрос Как правильно настроить Keenetic в роли exit-ноды для WireGuard, если он сам является клиентом VPS (за NAT)? Конкретно интересует: Нужно ли включать «использовать для выхода в интернет» для WireGuard? Требуется ли отдельная настройка NAT/маршрутизации для трафика, пришедшего из туннеля? Поддерживает ли Keenetic (OS 5) вообще такую схему: входящий WG-трафик → NAT → выход в интернет 1. нет. «использовать для выхода в интернет» нужно только для входа, чтобы кинетик добавил его в default route (или в политики) 2. однозначно, routes + firewall (try allow any ip) 3. да, из коробки если кинетики пингуются между собой, то это исключительно routes + firewall Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.