Если не работает WireGuard "Получено 92 Б", решение на windows и kali linux

D2

Администратор
Регистрация
19 Фев 2025
Сообщения
4,380
Реакции
0
Очень маленькая статья по поводу того, как починить WireGuard, если конфиг не коннектится и в "Получено" статично висит "92 Б".
Для того, чтобы это исправить, необходимо сначала отправить udp-пакет.
На всех осях:
в конфиге WG необходимо добавить строчку ListenPort и вписать туда любой не занятый порт
Код: Скопировать в буфер обмена
Код:
[Interface]
PrivateKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ListenPort = 54123
Address = XXXXXXXXXXX
DNS = XXXXXXXXXX

[Peer]
PublicKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
PresharedKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
AllowedIPs = XXXXXXXXXXXXX
Endpoint = 123.123.123:55555
PersistentKeepalive = XXXXXXXXX

Я взял для примера рандомный 54123

После этого, на Windows:
нужно написать скрипт (можно в блокноте):
Код: Скопировать в буфер обмена
Код:
$wgListenPort = 54123
$wgIP = "ВАШ_IP_ENDPOINT"
$wgPORT = ВАШ_ПОРТ_ENDPOINT

$EndPoints = New-Object System.Net.IPEndPoint([System.Net.IPAddress]::Parse([System.Net.Dns]::GetHostAddresses($wgIP)), $wgPORT)
$Socket = New-Object System.Net.Sockets.UDPClient $wgListenPort
$SendMessage = $Socket.Send([Text.Encoding]::ASCII.GetBytes(":)"), 2, $EndPoints)
$Socket.Close()

должно получиться так:
Код: Скопировать в буфер обмена
Код:
$wgListenPort = 54123
$wgIP = "123.123.123"
$wgPORT = 55555

$EndPoints = New-Object System.Net.IPEndPoint([System.Net.IPAddress]::Parse([System.Net.Dns]::GetHostAddresses($wgIP)), $wgPORT)
$Socket = New-Object System.Net.Sockets.UDPClient $wgListenPort
$SendMessage = $Socket.Send([Text.Encoding]::ASCII.GetBytes(":)"), 2, $EndPoints)
$Socket.Close()

Далее перед тем как включать конфиг на WG, нужно вставлять этот скрипт в Windows PowerShell и только после этого включать конфиг, либо написать исполняемый или макрос или что вашей душе угодно)

На Kali linux:

устанавливаете ncat, после чего почти то же самое, как на винде, создаете txt файл, в него прописываете:
Код: Скопировать в буфер обмена
Код:
#!/bin/bash

wgListenPort=54123
wgIP="ВАШ_IP_ENDPOINT"
wgPort=ВАШ_ПОРТ_ENDPOINT

echo ":)" | ncat -u $wgIP $wgPort -p $wgListenPort

получается так:

Код: Скопировать в буфер обмена
Код:
#!/bin/bash

wgListenPort=54123
wgIP="123.123.123"
wgPort=55555

echo ":)" | ncat -u $wgIP $wgPort -p $wgListenPort

После этого сохраняете файл и переименовываете как вам удобно, но с расширением .sh, например sendudp.sh
Далее залетаете в консольку, прописываете chmod +x sendudp.sh
После выполняете скрипт командой ./sendudp.sh
После этого можете запускать конфиг ВГ sudo wg-quick up имяконфига
Готово!
Для больмень шарящих всё очевидно и понятно, но простым смертным может помочь.

Известные проблемы:
Если вы пытались подрубиться через порт без скрипта или произошла какая-либо ошибка, подождите 5-10 минут, пока разлочится порт.
Пока работает, как долго будет работать сказать не могу :\
 
Сверху Снизу