Поднимаем Wireguard VPN соединение в ArchLinux
В предыдущем посте я рассказывал как поднять свой сервер 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 до конца еще не доделал, но в таком виде он работает без проблем.
killall polybar && sh ~/.config/polybar/launch.sh
Теперь в конце панели будет отображаться VPN: ON/OFF по клику как и писал выше соединение устанавливается или разрывается.
Мои конфиги расшарены по адресу https://gitlab.com/alextenkoff/Dotfiles (в ближайшее время надо бы их обновить 😃 )