Skip to content

Instantly share code, notes, and snippets.

@AlexSash1
Last active November 14, 2024 19:48
Show Gist options
  • Save AlexSash1/6a3835fb83a0c9f4561e8371ada70e88 to your computer and use it in GitHub Desktop.
Save AlexSash1/6a3835fb83a0c9f4561e8371ada70e88 to your computer and use it in GitHub Desktop.
Обход блокировки протокола на mikrotik

У меня и ip порты жестко прописаны на разных микротиках, поэтому скрипт с ожиданием сброса порта. Не требует указания портов и ip. Все берет из пира. Скрипт ищет активные пиры с остановившейся передачей, разрывает соединение, ждет 7 минут, посылает мусор и включает пир обратно. Нужно поставить в шедулер с интервалом раз в 1 минуту. 🔴 Осторожно, скрипт удаляет все stream, packet-template в генераторе трафика.

:global Tx
:global Rx
/interface/wireguard/peers

:foreach i in=[find where disabled=no] do={
  :local LocalTx [get $i tx]
  :local LocalRx [get $i rx]
  :local LastHandshake [get $i last-handshake]
  :if (([:tostr $LastHandshake] = "") or (($LastHandshake > [:totime "2m"]) and ($Rx->[:tostr $i] = $LocalRx))) do={
   :local rawHeader [:rndstr length=4 from=123456789abcdef]
	:local EndpointAddress [get $i endpoint-address]
:local EndpointAddressIP $EndpointAddress
:do {:set EndpointAddressIP [:resolve $EndpointAddress] } on-error={:log info ("EndpointAddress is ip: $EndpointAddressIP") }
	:local name [get $i name]
	:local wgDstPort [get $i endpoint-port]
	:local interface [get $i interface]
	:local srcport [/interface/wireguard/get $interface listen-port];
        :log info ("WG name is $name, EndpointAddress $EndpointAddress , LastHandshake $LastHandshake, LastTx " . $Tx->[:tostr $i] . ", CurrentTx $LocalTx, LastRx " . $Rx->[:tostr $i] . ", CurrentRx $LocalRx")
        :log info ("WG Currentinterface $interface, srcport $srcport, EndpointAddressIP $EndpointAddressIP, DstPort $wgDstPort")
	:log info ("Generating spam for RKN")
	set $i disabled=yes
	:delay 7m
	/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=$EndpointAddressIP name=packet-template-wg raw-header=$rawHeader special-footer=no udp-dst-port=$wgDstPort udp-src-port=$srcport
	/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
	:log info ("WG $EndpointAddress is now up")
        set $i endpoint-address=$EndpointAddress
        set $i disabled=no
}
  :set ($Tx->[:tostr $i]) $LocalTx
  :set ($Rx->[:tostr $i]) $LocalRx
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment