WireGuard запуск переключения туннелей

Упрощенный скрипт для того что бы можно было легко управлять туннелями. В основном нужно для десктопа.
Все конфиги с человекопонятными именами создаем в /etc/wireguard/. Например my-work.conf. Так же можно создать эту папку в своем каталоге, а в /etc/wireguard сделать симлинк ln -s /home/username/Configs/wireguard/ /etc/wireguard

Сам скрипт mywg

#!/bin/bash

CONNECTED=`sudo /bin/wg show |grep interface: | cut -d' ' -f2-`

function stop_all {
  for tun in ${CONNECTED}
  do
    sudo /bin/wg-quick down $tun
  done
}

i=1
files=()

if [[ "${CONNECTED}" != "" ]]; then
    echo Connected to: ${CONNECTED}. For disconnect press Enter key
fi

for file in `find /etc/wireguard/ -type f -name "*.conf"`
do
  filename=$(basename -- "$file")
  filename="${filename%.*}"
   echo $i. "$filename"
   files[$i]=$filename
   i=$((i+1))
done

read -p "Enter WG conf num: " conf_num

# Стопаем все туннели
stop_all

# Выходим если нужно было только остановить
if [[ "${conf_num}" == "0" ]]; then
    exit
fi

if [[ -v "files[${conf_num}]" ]] ; then
    sudo /bin/wg-quick up ${files[$conf_num]}
fi

Создаем файл /etc/sudoers.d/wg

username ALL = NOPASSWD:/bin/wg-quick
username ALL = NOPASSWD:/bin/wg

username меняем на имя вашего пользователя.

[ Править ]

@kiranananda