Если вы владелец VPS'ки на которой подняли wireguard сервер, то эта статья для вас. В ней расскажу как настроить соединение с нашим сервером в ОС GNU/ArchLinux.
Для начала, необходимо установить следующие пакеты
sudo pacman -S wireguard-tools systemd-resolvconf
Далее копируем ваш конфиг в /etc/wireguard/wg0.conf
sudo cp ваш_конфиг.conf /etc/wireguard/wg0.conf
Пробуем поднять соединение:
sudo wg-quick up wg0
Если всё прошло удачно отобразятся следующие строки, проверить поднялся ли интерфейс wg0 можно командой ip a
Если всё прошло удачно, то теперь можно настроить автоматическое соединение вбиваем в терминале
sudo systemctl enable wg-quick@wg0
После этого, при загрузке системы, соединение будет подниматься автоматически.
Если используете polybar, то можно и на него повесить индикатор соединения, кроме того по клике правой клавиши мышки соединение будет устанавливаться/разрываться.
Открываем конфиг polybar'а (я использую nvim можете заменить на свой)
nvim .config/polybar/config.ini
В конец добавляем:
[module/wireguard]
type = custom/script
exec = /home/$USER/.config/polybar/scripts/wireguard.sh
tail = false
interval = 1
click-left = /home/$USER/.config/polybar/scripts/wireguard.sh --toggle &
Поднимаемся выше по конфигу до строчки modules-right и добавляем в конец wireguard
Создаём .config/polybar/scripts/wireguard.sh со следующим содержимым
#! /bin/bash
connected_interface=$(networkctl | grep -P "\d+ .* wireguard routable" -o | cut -d" " -f2)
connect() {
sudo wg-quick up wg0
}
disconnect() {
# Normally we should have a single connected interface but technically
# there's nothing stopping us from having multiple active intgerfaces so
# let's do this in a loop:
for connected_config in $(networkctl | grep -P "\d+ .* wireguard routable" -o | cut -d" " -f2)
do
sudo wg-quick down wg0
done
}
toggle() {
if [[ $connected_interface ]]
then
disconnect
else
connect
fi
}
print() {
if [[ $connected_interface ]]
then
echo "%{F#FFDE7D}%{T1}說%{T-} %{T2}VPN: ON%{T-}"
else
echo "%{F#5f5f5f}%{T1}說%{T-} %{T2}VPN: OFF%{T-}"
fi
}
case "$1" in
--connect)
connect
;;
--disconnect)
disconnect
;;
--toggle)
toggle
;;
*)
print
;;
esac
Конфиг брал с https://github.com/CrCrate/polybar-wireguard-nm-rofi до конца еще не доделал, но в таком виде он работает без проблем.
Перезапускаем polybar
killall polybar && sh ~/.config/polybar/launch.sh
Теперь в конце панели будет отображаться VPN: ON/OFF по клику как и писал выше соединение устанавливается или разрывается.