Настройка Mikrotik под WireGuard AntiZapret

Ну все вопросы к людям которые старушке для YouTube на телевизоре установили хап 2 и ещё через пару метров по силовой линии прокинули ретранслятор. (Тоже от микротика разумеется.)

Лан. Я прикалываюсь - у старушки огромный дом и ретрснслятор там возможно нужен. Но нахрена при этом кинетик я хз.

Я насколько помню стейбл для хапа был только пятой версии, а 7 тестовая.

Ну если у когото в 2020-2024 году хватает мозгов собирать Wi-Fi сети на микротиках это финиш увы. Если большой дом микрот + Ubiquti.

Поставь бету потом сразу обнову на stable и полет будет нормальный. На бете есть косяки.

Вчера весь вечер бился с микротом. Никак не смог забороть.
Интерфейс поднял, пира добавил. Last handshake проходит, на серваке пира и обмен пакетами вижу. Но спустя буквально секунд 10-15 пакеты полностью перестают приходить с сервака. Соответственно пинги на DNS 10.29.0.1 не идут. Поднял на винде обычный клиент Wireguard, заглянул в логи, там такое:

2024-10-29 07:43:45.704166: [TUN] [antizapret-client.-wg] Receiving handshake response from peer 1
2024-10-29 07:43:45.704166: [TUN] [antizapret-client-.-wg] Keypair 1 created for peer 1
2024-10-29 07:44:02.988602: [TUN] [antizapret-client-.-wg] Retrying handshake with peer 1 because we stopped hearing back after 15 seconds
2024-10-29 07:44:02.988602: [TUN] [antizapret-client-.-wg] Sending handshake initiation to peer 1
2024-10-29 07:44:08.062540: [TUN] [antizapret-client-.-wg] Handshake for peer 1 did not complete after 5 seconds, retrying (try 2)
2024-10-29 07:44:08.062540: [TUN] [antizapret-client-.-wg] Sending handshake initiation to peer 1
2024-10-29 07:44:13.231071: [TUN] [antizapret-client.-wg] Handshake for peer 1 did not complete after 5 seconds, retrying (try 3)
2024-10-29 07:44:13.231080: [TUN] [antizapret-client-.-wg] Sending handshake initiation to peer 1
2024-10-29 07:44:18.118196: [TUN] [antizapret-client-.-wg] Retrying handshake with peer 1 because we stopped hearing back after 15 seconds

Я так понимаю, провайдер блочит? Потому что сталкивался уже с похожими симптомами, когда Мегафон l2tp/ipsec положил.

Проверь WG на телефоне через клиент для него же если так же не работает, то твой сервер в черном списке

Привет, у меня точно так же, проверил, сервер не в черном списке, что еще может быть?

Значит есть ошибки при настройке, через встроенный в микротик ping tracerouter пинговать шлюз и проверять поднимается ли связь или нет.

Встроенный traceroute говорит, что шлюз недоступен. Проверил на другом микротике с другого провайдера из другой части города - такая же точно история. При этом обычный OVPN поднимается без проблем. Но у меня на нём по какой-то причине настолько низкая скорость, что сайты через раз выдают таймаут, а заблокированные сайты не открываются вовсе, из-за чего и ищу альтернативный вариант. Роутеры hap ac3 и rb3011uias. Провайдеры: ростелеком, дом.ру, мегафон. VPS на ВДСине.

Я в об этом писал в Keenetic что если уверены что сделали все правильно и шлюз не пингуется и в добавок через приложение WG не работает данный клиент. Ваш сервер впс попал в блокировку DPI и будет работать только Амнезия. Амнезии на микротике нет остается только опенвпн который пока что еще работает(вопрос на долго ли остается открытым). Проверить связался ваш микротик с сервером можно ввести на сервере команду wg
если связь видно, тут увы менять сервер если хочет именно WireGuard или остаться на OpenVPN

Спасибо, что подтвердили догадку. Эх, придется дальше колдовать над ovpn соединением.

Привет, народ.Не туда написал(

11

@vitalik6243 привет, возможно сможешь помочь? У меня wg блокируется на DPI. Но на windows обходится с помощью отправки UDP пакета перед подключением. Мне мозгов не хватило чтобы написать скрипт для микротика (крутил traffic generator но не вышло). Сам скрипт для винды вот: WireGuard DPI обход РКН - Windows · GitHub

По факту нужно отправить один UDP пакет на listen port WG сервера

Обход блокировки протокола WireGuard, в т.ч. AmneziaWG - Обсуждение IPsec, OpenVPN и других туннелей - Keenetic Community

here here
:global Tx
:global Rx
/interface wireguard peers
:foreach i in=[find where disabled=no and responder!=yes] do={
    :local LocalTx [get $i tx]
    :local LocalRx [get $i rx]
    :local LastHandshake [get $i last-handshake]
    :if (([:tostr $LastHandshake] = "") or (($LastHandshake > [:totime "2m20s"]) and ($Rx->[:tostr $i] = $LocalRx))) do={
        :local PeerName [get $i name]
        :local Interface [get $i interface]
        :local EndpointAddress [get $i endpoint-address]
        :local EndpointIP [get $i current-endpoint-address]
        :local DstPort [get $i current-endpoint-port]
        :local RawHeader [:rndstr length=4 from=123456789abcdef]
        
        #Reset source port
        /interface wireguard set $Interface listen-port=0
        :local SrcPort [/interface wireguard get $Interface listen-port]
        
        #Log peer info
        :log warning ("Peer: $PeerName, Interface: $Interface")
        :log warning ("Endpoint Address: $EndpointAddress, Endpoint IP: $EndpointIP")
        :log warning ("Src Port: $SrcPort, Dst Port: $DstPort, Last Handshake: $LastHandshake")
        :log warning ("Last Rx: " . $Rx->[:tostr $i] . ", Current Rx: $LocalRx")
        :log warning ("Last Tx: " . $Tx->[:tostr $i] . ", Current Tx: $LocalTx")
        
        #Disable peer
        :log warning ("Disable peer: $PeerName")
        set $i disabled=yes
        :delay 1
        
        #Generating spam
        :log warning ("Generating spam")
        /tool traffic-generator stream remove [find]
        /tool traffic-generator packet-template remove [find]
        :delay 1
        /tool traffic-generator packet-template add header-stack=mac,ip,udp,raw ip-dst=$EndpointIP name=packet-template-wg raw-header=$RawHeader special-footer=no udp-dst-port=$DstPort udp-src-port=$SrcPort
        :delay 1
        /tool traffic-generator stream add disabled=no mbps=1 name=stream1 id=3 packet-size=1450 pps=0 tx-template=packet-template-wg
        :delay 1
        /tool traffic-generator quick duration=4
        
        #Enable peer
        :log warning ("Enable peer: $PeerName")
        set $i disabled=no
    }
    :set ($Tx->[:tostr $i]) $LocalTx
    :set ($Rx->[:tostr $i]) $LocalRx
}

хм не могу найти оригинал темы с этим скриптом под микротик