UDP Trash Hack for WireGuard on AsusWRT Merlin
Проверяем, что включен пункт меню Enable JFFS custom scripts and configs
- Кладём файл
wgclient-start
в/jffs/scripts/
- Делаем скрипт запускаемым
chmod +x /jffs/scripts/wgclient-start
- Подключаем WG клиента в настройках роутера.
Если клиент уже подключен, то выполняем команду
/jffs/scripts/wgclient-start <номер впн клиента>
(Например/jffs/scripts/wgclient-start 1
если подключен клиент под номером 1) - Done ✅
Спасибо @alexbozhenko за полезные ссылки:
- Как установить прошивку AsusWRT merlin(один клик в web UI, даже все ваши старые настройки сохранятся) https://github.com/RMerl/asuswrt-merlin.ng/wiki/Installation
- Как включить SSH доступ: https://github.com/RMerl/asuswrt-merlin.ng/wiki/SSH
- О JFFS: https://github.com/RMerl/asuswrt-merlin.ng/wiki/JFFS
- О VPN Director(новый интерфейс для настройки VPN в AsusWRT Merlin) https://github.com/RMerl/asuswrt-merlin.ng/wiki/VPN-Director
- O скриптах, в т.ч. wgclient-start: https://github.com/RMerl/asuswrt-merlin.ng/wiki/User-scripts
- Как сделать отдельную вайфай сеть с VPN: https://gist.github.com/koolvn/993d9c7eb2666dbf15bdccc7d3c4fe33?permalink_comment_id=5264534#gistcomment-5264534
Проверен на роутерах:
- ASUS RT-AX88U PRO, Merlin 3004.388.8_2
- ASUS RT-AX68U, Merlin 3004.388.8_2
- ASUS RT-AX86U
- ASUS RT-AX56U, Merlin 3004.388.8_2
@koolvn - можно ли доработать скрипт, чтобы он слал около 12 рандомных пакетов, разного содержания, разной длины, с разными небольшими задержками а-ля amneziawg? пока сделал вот такой "костыль", вроде работает.
`
Generate a random message
message=$(dd if=/dev/urandom bs=228 count=5 2>/dev/null | tr -dc 'A-Za-z0-9')
message2=$(dd if=/dev/urandom bs=228 count=5 2>/dev/null | tr -dc 'A-Za-z0-9')
message3=$(dd if=/dev/urandom bs=228 count=5 2>/dev/null | tr -dc 'A-Za-z0-9')
message4=$(dd if=/dev/urandom bs=228 count=5 2>/dev/null | tr -dc 'A-Za-z0-9')
Send the message using socat
echo "$message" | socat - UDP-SENDTO:"$wg_server:$wg_port",sourceport="$l_port"
echo "$message3" | socat - UDP-SENDTO:"$wg_server:$wg_port",sourceport="$l_port"
echo "$message4" | socat - UDP-SENDTO:"$wg_server:$wg_port",sourceport="$l_port"
echo "$message2" | socat - UDP-SENDTO:"$wg_server:$wg_port",sourceport="$l_port"
echo "$message" | socat - UDP-SENDTO:"$wg_server:$wg_port",sourceport="$l_port"
echo "$message4" | socat - UDP-SENDTO:"$wg_server:$wg_port",sourceport="$l_port"
sleep 1
echo "$message2" | socat - UDP-SENDTO:"$wg_server:$wg_port",sourceport="$l_port"
echo "$message" | socat - UDP-SENDTO:"$wg_server:$wg_port",sourceport="$l_port"
echo "$message4" | socat - UDP-SENDTO:"$wg_server:$wg_port",sourceport="$l_port"
echo "$message3" | socat - UDP-SENDTO:"$wg_server:$wg_port",sourceport="$l_port"
echo "$message2" | socat - UDP-SENDTO:"$wg_server:$wg_port",sourceport="$l_port"
echo "$message" | socat - UDP-SENDTO:"$wg_server:$wg_port",sourceport="$l_port"
`