Перейти к содержанию

Рекомендуемые сообщения

Опубликовано (изменено)

Здравствуйте. Пытаюсь реализовать следующую схему:

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)?

Конкретно интересует:

  1. Нужно ли включать «использовать для выхода в интернет» для WireGuard?

  2. Требуется ли отдельная настройка NAT/маршрутизации для трафика, пришедшего из туннеля?

  3. Поддерживает ли Keenetic (OS 5) вообще такую схему:

    • входящий WG-трафик → NAT → выход в интернет


Буду благодарен за пример рабочей конфигурации или указание, что в принципе в этой версии Keenetic это не реализуемо.

Спасибо.

P.S. Писал ИИ, бананами не бросаться.

Изменено пользователем sanuzb
Удалил дубли
Опубликовано

Почему на кинетике адрес  10.77.0.2/32?  Он тогда не имеет маршрута до 10.77.0.2. Проверьте в веб-интерфейсе кинетика пинг до 10.77.0.2. Скорее всего его не будет. Нужно маску сделать 24, раз такую выбрали. И еще на кинетике в узбекистане security-level на интерфейсе wireguard1 какой? Если он Public - надо разрешающие правила в межсетевом экране добавить.

Опубликовано (изменено)
3 часа назад, Werld сказал:

Почему на кинетике адрес  10.77.0.2/32? 

Сейчас ситуация следующая. WG снес, поставил AmneziaWG.
1. Пир 10.8.5.2 - UZ роутер
2. Пир 10.8.5.1 - RU роутер.
Оба подключены к одному контейнеру - amnezia-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 роутере:
image.thumb.png.40cea4d37f1afc30ecca0ea4ba40c40b.png

Изменено пользователем sanuzb
Опубликовано (изменено)

uz роутер должен знать куда ему отправлять обратно трафик.

На уз роутере нужно маршрут до сети ру роутера проложить в интерфейс wg + у wg соединения должны быть проставлены allowed ip.

На сервере маршруты должен быть до обоих роутеров через интерфейс wg

wg сервер должен знать, что за клиентами есть свои подсети, т.е. у клиента 10.8.5.1 в качестве allowed ip должна быть указана подсеть роутера. Со вторым роутером тоже самое + 0.0.0.0/0.

зачем 100 таблица и дефолтный маршрут непонятно

Изменено пользователем vvfd
Опубликовано (изменено)

Посоветую не заниматься ерундой с контейнером, который вы, вероятно, установили с помощью приложения 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.

Описаная схема подразумевает выход для клиентов с КинетикаРУ в интернет за КинетикомУЗ. В обратную сторону идут только ответные пакеты. Выход для клиентов КинетикаУЗ в интернет за КинетикомРУ не предусмотрен. Доступ клиентам КинетикаРУ к домашней сети КинетикаУЗ не предусмотрен.
Пробуйте. Возможно, что-то забыл упомянуть, так как давно уже такое не настраивал, писал из головы. Особенно касется КинетикаУЗ, возможно что-то для него еще упустил.  

Изменено пользователем Werld
Опубликовано
On 4/28/2026 at 7:21 PM, sanuzb said:

Вопрос

Как правильно настроить Keenetic в роли exit-ноды для WireGuard, если он сам является клиентом VPS (за NAT)?

Конкретно интересует:

  1. Нужно ли включать «использовать для выхода в интернет» для WireGuard?

  2. Требуется ли отдельная настройка NAT/маршрутизации для трафика, пришедшего из туннеля?

  3. Поддерживает ли Keenetic (OS 5) вообще такую схему:

    • входящий WG-трафик → NAT → выход в интернет

1. нет. «использовать для выхода в интернет» нужно только для входа, чтобы кинетик добавил его в default route (или в политики)
2. однозначно, routes + firewall  (try allow any ip)
3. да, из коробки

если кинетики пингуются между собой, то это исключительно routes + firewall

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.