Last active
July 8, 2022 16:19
-
-
Save shvchk/de82fd6dacd021222749823f0e718830 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
die() { | |
echo "${1}. Exit." | |
exit 1 | |
} | |
yes_or_no() { | |
echo | |
while true; do | |
read -p "$* [введите + или - ]: " yn < /dev/tty || die "No tty" | |
case "$yn" in | |
"+") return 0 ;; | |
"-") return 1 ;; | |
esac | |
done | |
} | |
echo "Перед настройкой WireGuard рекомендуем удостовериться, что ПО роутера обновлено:" | |
echo "http://192.168.1.1/#adm/management.asp" | |
echo "или" | |
echo "Администрирование > Управление > Обновление ПО" | |
yes_or_no "Продолжить?" || exit | |
read -rp '[Interface] Address: ' Address < /dev/tty || die "No tty" | |
read -rp '[Interface] PrivateKey: ' PrivateKey < /dev/tty || die "No tty" | |
read -rp '[Peer] Endpoint: ' Endpoint < /dev/tty || die "No tty" | |
read -rp '[Peer] PublicKey: ' PublicKey < /dev/tty || die "No tty" | |
read -rp '[Peer] AllowedIPs: ' AllowedIPs < /dev/tty || die "No tty" | |
EndpointAddr="$(echo "$Endpoint" | cut -d ':' -f 1)" | |
EndpointPort="$(echo "$Endpoint" | cut -d ':' -f 2)" | |
#echo "$PrivateKey" > /pss/wg_cli_client_private_key | |
#echo "$PublicKey" > /pss/wg_cli_client_public_key | |
#fs saveps | |
# | |
#nvram_set wireguard_cli_netaddress "$Address" | |
#nvram_set wireguard_cli_endpoint "$EndpointAddr" | |
#nvram_set wireguard_cli_endpoint_port "$EndpointPort" | |
#nvram_set wireguard_cli_allowedips "$AllowedIPs" | |
echo "$PrivateKey > /pss/wg_cli_client_private_key" | |
echo "$PublicKey > /pss/wg_cli_client_public_key" | |
echo "fs saveps" | |
echo "nvram_set wireguard_cli_netaddress $Address" | |
echo "nvram_set wireguard_cli_endpoint $EndpointAddr" | |
echo "nvram_set wireguard_cli_endpoint_port $EndpointPort" | |
echo "nvram_set wireguard_cli_allowedips $AllowedIPs" | |
if yes_or_no "Настройка завершена, проверить соединение WireGuard?"; then | |
#service wireguard stop | |
echo "service wireguard stop" | |
oldIP="$(wget -qO- ifconfig.co)" | |
echo "IP адрес до подключения: $oldIP" | |
#service wireguard start | |
echo "service wireguard start" | |
if ping -c 3 -W 1 1.1.1.1; then | |
echo "Тестовый узел доступен" | |
newIP="$(wget -qO- ifconfig.co)" | |
if [ "$oldIP" = "$newIP" ]; then | |
echo "IP адрес не изменился!" | |
echo "В некоторых случаях это нормально, но всё же имейте ввиду" | |
else | |
echo "Новый IP адрес: $newIP" | |
echo "Похоже, всё в порядке" | |
fi | |
else | |
echo "Тестовый узел недоступен" | |
echo "Это может свидетельствовать о некорректной настройке соединения или сервера" | |
fi | |
if yes_or_no "Оставить WireGuard включенным?"; then | |
echo "В случае необходимости, соединение можно выключить вручную командой service wireguard stop" | |
else | |
#service wireguard stop | |
echo "service wireguard stop" | |
echo "Готово" | |
fi | |
fi | |
if yes_or_no "Включить автозапуск WireGuard при включении роутера?"; then | |
#nvram_set wireguard_cli_enabled 1 | |
echo "nvram_set wireguard_cli_enabled 1" | |
echo "Готово" | |
else | |
echo "В случае необходимости, автозапуск можно выключить вручную командой nvram_set wireguard_cli_enabled 1" | |
fi | |
if yes_or_no "Настроить выборочную маршрутизацию для обхода блокировок?"; then | |
custom_routes_script_path="/pss/wg-up.d/10-custom-routes" | |
custom_routes_script_url="https://gist.github.com/shvchk/675c363f8f241ec2d3300295d86de5cd/raw" | |
included_routes_path="/pss/wg_client_included_routes" | |
included_routes_url="https://gist.github.com/shvchk/ad0ae5c0a46036e5d1c164b3e9cdfb50/raw" | |
#mkdir /pss/wg-up.d | |
#wget "$custom_routes_script_url" -qO "$custom_routes_script" | |
#wget "$included_routes_url" -qO "$included_routes" | |
#chmod +x "$custom_routes_script" | |
#fs saveps | |
echo "mkdir /pss/wg-up.d" | |
echo "wget $custom_routes_script_url -qO $custom_routes_script_path" | |
echo "wget $included_routes_url -qO $included_routes_path" | |
echo "chmod +x $custom_routes_script_path" | |
echo "fs saveps" | |
echo "Готово" | |
echo | |
echo "Рекомендуем добавить на роутере следующие локальные записи DNS:" | |
cat "$included_routes_path" | sed -n '/# Hosts/,/# ---*/{/^#/d;s/#//;/^[0-9]/p}' | |
echo "Сделать это можно по ссылке http://192.168.1.1/#services/dns.asp" | |
echo "или" | |
echo "Сервисы > Службы DNS > Локальные записи DNS" | |
fi | |
if yes_or_no "Перезапустить WireGuard?"; then | |
#service wireguard restart | |
echo "service wireguard restart" | |
echo "Готово" | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment