Не работает vpn клиент wireguard windows 11

У меня есть сервер vpn wireguard который прекрасно работает. Я подключаюсь к нему из ubuntu 20.04 и со своего телефона на android. И там и там нет никаких проблем. Но есть проблема на windows 11. Там при подключении к впн просто пропадает интернет. Я пробовал скармливать те же самые конфиги что и ubuntu клиенту и андроид клиенту. Но оно не работает. Вообще никак. Так же я пробовал создавать нового юзера на сервере и скармливать его конфиг windows клиенту. Тоже не работает. Делаю ctrl+c ctrl+v Этого конфига на линукс и всё запускается с первой попытки. Из этого я сделал два вывода:

  1. Никаких проблем с сервером нет (иначе почему линукс и андроид клиенту отлично работают?)
  2. Никаких проблем с конфигом клиента так же нет. Потому что когда я скармливаю тот же самый конфиг линукс и андроид клиента то всё прекрасно работает.

Значит проблема исключительно с моим любимым майкрософтом и его виндой, у которого постоянно какие-то танцы с бубном. Конфиг который я вставляю в клиент:

[Interface]
PrivateKey = <private_key>
Address = 10.0.0.5/32
DNS = 8.8.8.8

[Peer]
PublicKey = <public_key>
AllowedIPs = 0.0.0.0/0
Endpoint = <server_ip>:51830
PersistentKeepalive = 20

Я пробовал отключать брандмауэр винды это никакого профита не принесло. Всё тоже самое. Антивирус только встроенный в винду. Его я тоже пробовал отключать тоже 0 профита. Так же эта проблема не связана с моим роутером. Т.к. линукс установлен на этом же компе и на этом же ssd диске, работает он так же через этот роутер и не имеет никаких проблем. Логи wireguard выглядят так:

2022-06-29 23:46:27.267: [TUN] [myvpn] Sending handshake initiation to peer 1 (<server_ip>:51830)
2022-06-29 23:46:32.428: [TUN] [myvpn] Handshake for peer 1 (<server_ip>:51830) did not complete after 5 seconds, retrying (try 2)
2022-06-29 23:46:32.428: [TUN] [myvpn] Sending handshake initiation to peer 1 (<server_ip>:51830)
2022-06-29 23:46:37.437: [TUN] [myvpn] Sending handshake initiation to peer 1 (<server_ip>:51830)
2022-06-29 23:46:42.515: [TUN] [myvpn] Handshake for peer 1 (<server_ip>:51830) did not complete after 5 seconds, retrying (try 2)
2022-06-29 23:46:42.515: [TUN] [myvpn] Sending handshake initiation to peer 1 (<server_ip>:51830)

При этом сам клиент пишет что всё ок и соединение активно. То что что-то не так становится понятно только по логам и по тому что нет интернета. В логах он жалуется что не получает ответа от сервера. Но я на 99% уверен что запросы клиента даже не доходят до сервера благодаря винде и где-то теряются во всяких брандмауэрах (хотя я его отключил, непонятно что ещё может быть). Так же заметил интересную особенность. После активации тоннеля адаптер создаётся, но там почему-то написано, что у него нет доступа к интернету.

введите сюда описание изображения

Не знаю должно ли так быть в винде. Но это странно, ведь весь трафик после активации через этот адаптер отправляется. А как он отправится если у него нет доступа к инету?

route print выводит это (при включенном тоннеле):

C:\Windows\system32>route print
===========================================================================
Список интерфейсов
 18...........................WireGuard Tunnel
 10...40 b0 76 0d a7 4d ......Realtek PCIe GbE Family Controller
  1...........................Software Loopback Interface 1
===========================================================================

IPv4 таблица маршрута
===========================================================================
Активные маршруты:
Сетевой адрес           Маска сети      Адрес шлюза       Интерфейс  Метрика
          0.0.0.0          0.0.0.0      192.168.0.1     192.168.0.69     35
          0.0.0.0        128.0.0.0         On-link          10.0.0.5      5
         10.0.0.5  255.255.255.255         On-link          10.0.0.5    261
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    331
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    331
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    331
  127.255.255.255  255.255.255.255         On-link          10.0.0.5    261
        128.0.0.0        128.0.0.0         On-link          10.0.0.5      5
      192.168.0.0    255.255.255.0         On-link      192.168.0.69    291
     192.168.0.69  255.255.255.255         On-link      192.168.0.69    291
    192.168.0.255  255.255.255.255         On-link      192.168.0.69    291
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    331
        224.0.0.0        240.0.0.0         On-link      192.168.0.69    291
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    331
  255.255.255.255  255.255.255.255         On-link      192.168.0.69    291
===========================================================================
Постоянные маршруты:
  Отсутствует

Ответы (7 шт):

Автор решения: Олег

Вам нужно отключить и остановить службу win Маршрутизация и удаленный доступ. Мне помогло

→ Ссылка
Автор решения: Евгений Филатов

Идем на сайт создателя приложения и скачиваем msi инсталер на выбор есть три варианта, ARM, x86 и x64 скачиваем ту версию которую поддерживает ваш процессор. Мне помог x64 так как у меня обычный современный пк. ARM архитектура обычно есть только на мобильных процессорах телефоны итп.

→ Ссылка
Автор решения: Baron Van

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

→ Ссылка
Автор решения: Грант Петросян

Мне помогла смена DNS серверов в конфиге. Поставил от cloudflare 1.1.1.1 и 1.0.0.1

→ Ссылка
Автор решения: Александр

Если вопрос еще актуальный, то необходимо сделать следующее.

Проблема на стороне Windows, на котором установлен Wireguard в качестве сервера.

Вот отличная полная инструкция для настройки: https://www.henrychang.ca/how-to-setup-wireguard-vpn-server-on-windows/

Отмечу лишь суть данной проблемы:

  1. По умолчанию, когда включен общий доступ к Интернету (NAT), Windows изменит IP-адрес адаптера на что-то другое (во избежание конфликтов). Однако мы уже знаем, какой IP-адрес мы хотим использовать для Wireguard Server (заданный в блоке [interface] в нашей конфигурации wireguard). Чтобы изменить IP-адрес по умолчанию, на который переключится Windows, мы можем просто изменить настройку в реестре. Откройте редактор реестра и перейдите по следующему пути:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\SharedAccess\Parameters

Затем просто измените ScopeAddress и StandaloneDHCPAddress на нужный нам IP-адрес (Который прописан в [interface] Wireguard-Сервера).

  1. После того, как прописан IP в реестре, запустите снова Общий доступ к интернету. В PowerShell с правами администратора выполните

Set-NetConnectionSharing "wg_server" $true

где "wg_server" - Наименование Вашего Wireguard-сервера.

Еще обратите внимание, что после перезагрузки, все это может слетать. В инструкции по ссылке, есть от этого средство.

→ Ссылка
Автор решения: Inventor

Спустя время я переустановил windows. Пробовал на 10 и на 11 винде, оно не работало. Но вдруг несколько раз включив и выключив туннель на клиенте при очередном включении произошло рукопожатие... Теперь оно работает и рукопожатие происходит всегда, даже после перезагрузки windows. Я так и не понял в чём была проблема. Подозреваю что клиент wireguard на windows всё-таки имеет какие-то проблемы и баги

→ Ссылка
Автор решения: bmalchik bmalchik

мне помогло в AllowedIps разделить подсеть 0.0.0.0/0 на две: 0.0.0.0/1 и 128.0.0.0/1

→ Ссылка