Задать вопрос
yaleksandr89
@yaleksandr89
PHP developer

Как настроить блок AllowedIPs в wireguard на ОС: Fedora 40 или Ubuntu 24.04?

Здравствуйте.

Сразу оговорю в Windows, такой проблемы нет. Проверял на последних версиях Ubuntu и Fedora, где была добавлена возможность настраивать wireguard на вкладке Networks в настройках. Имеется конфиг:
[Interface]
PrivateKey = ...............
Address = 10.138.98.2/32
DNS = 8.8.8.8

[Peer]
PublicKey = ...............
AllowedIPs = 0.0.0.0/0
Endpoint = 146.0.78.177:37956


Такой конфиг работает везде: Windows, Ubuntu, Linux. Но мне нужно работа VPN на определенных VPN. Я пытаюсь их указать в блоке "AllowedIPs": 192.168.1.1/16, 192.168.1.1/24, 192.168.1.1/32 (маска может быть везде 16 или 24 или 32, без разницы если маска отлична от 0 - vpn перестает работаеть), то есть такой конфиг:
[Interface]
PrivateKey = ...............
Address = 10.138.98.2/32
DNS = 8.8.8.8

[Peer]
PublicKey = ...............
AllowedIPs = 192.168.1.1/16, 192.168.1.1/24, 192.168.1.1/32
Endpoint = 146.0.78.177:37956


Работает только на Windows. Всем может быть проблема и есть идеи, как это исправить?
  • Вопрос задан
  • 304 просмотра
Подписаться 1 Средний 2 комментария
Решения вопроса 1
ValdikSS
@ValdikSS
Вероятно, необходимо добавить маршрут до 8.8.8.8/32 — DNS-резолвера, указанного в конфигурации.

В Linux, при использовании systemd-resolved, адрес DNS-резолвера привязывается к интерфейсу, а у вас нет маршрута до него через WireGuard. В Windows запросы выполняются через физический интерфейс (либо через несколько резолверов параллельно)
Прочитайте про проблему XY и больше не составляйте вопросы настолько размыто.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
@Stariyded
Сетевой админ
Блок AllowedIPs подразумевает разрешенные адреса сетей или хостов, с которых можно подключаться. В вашем случае 192.168.1.1/16 или/24 не является валидным адресом сети или хоста. Вариант с маской /32 имеет право на жизнь, но раз это адрес хоста, может быть wireguard ждет его без маски, просто 192.168.1.1
Ответ написан
@Drno
Ну если я правильно понимаю, Вы хотите завернуть только пакеты для Chat внутрь ВПН
spoiler

Параметр `AllowedIPs` в конфигурации WireGuard выполняет две функции¹:

1. **Добавляет маршрут к указанным сетям**. То есть пакеты, адресованные к 192.168.1.1/16, 192.168.1.1/24, 192.168.1.1/32, будут маршрутизироваться через интерфейс WireGuard к этому пиру¹.

2. **Разрешает пакеты с исходными IP-адресами 192.168.1.1/16, 192.168.1.1/24, 192.168.1.1/32 маршрутизироваться от данного пира по интерфейсу WireGuard**¹. Любой пакет от данного пира с исходным IP-адресом, который не указан в `AllowedIPs`, будет отброшен¹.

Это не заменяет брандмауэр, но служит важной частью модели безопасности WireGuard¹. Если вы хотите маршрутизировать все через пир, настройте параметр `AllowedIPs` следующим образом: `AllowedIPs = 0.0.0.0/0, ::/0`. Это указывает WireGuard, что все адреса IPv4 (`0.0.0.0/0`) и все адреса IPv6 (`::/0`) должны быть маршрутизированы через пир¹.

Bing


Наверно надо еще посмотреть что то насчет правильных маршрутов в linux \ dns
Точно пропадает именно интернет, а не DNS ?
проверить можно с помощью ping до google.com и 8.8.8.8
Ответ написан
Комментировать
@sergeyrest
а ты разрешить туннельные адреса не пробовал для начала? а то у тебя в туннеле 10-я сеть а разрешаешь 192.168/16 как то странновато )))
Ответ написан
Комментировать
@KuronekoSeon
Нужно просто убрать строку DNS = 8.8.8.8 из секции [Interface], и тогда получите то, что вы хотите.
[Interface]
PrivateKey = ...............
Address = 10.138.98.2/32

[Peer]
PublicKey = ...............
AllowedIPs = 192.168.1.1/16, 192.168.1.1/24, 192.168.1.1/32
Endpoint = 146.0.78.177:37956
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы