Установка VPN клиента
sudo apt install resolvconf
sudo apt install wireguard
sudo touch /etc/wireguard/wg0.conf && sudo chmod 600 -R /etc/wireguard/
sudo vim /etc/wireguard/wg0.conf
[Interface]
PrivateKey = <>
Address = 10.8.0.3/24
DNS = 1.1.1.1
[Peer]
PublicKey = <>
PresharedKey = <>
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 0
Endpoint = 85.234.106.76:51820
Значения полей PrivateKey
, PublicKey
, PresharedKey
берутся из файла конфигурации, созданного средствами VPN сервера.
Запуск VPN клиента
sudo wg-quick up wg0
После запуска VPN клиента активируется сетевой интерфейс и у ВМ изменится IP адрес.
Мы потерям текущее SSH подключение и к ВМ и нужно будет подключиться по локальному IP внутри VPN сети.
Проверка статуса VPN
sudo wg show
Отключение VPN канала
sudo wg-quick down wg0
Мы вновь потерям текущее SSH подключение и к ВМ и нужно будет подключиться по публичному IP.
sudo apt install wireguard-tools libgtk-3-dev libayatana-appindicator3-dev golang-go resolvconf
git clone https://github.com/UnnoTed/wireguird
cd wireguird
chmod +x ./*.sh
./deps.sh
./package.sh
./install.sh
Остановка/Удаление старых контейнеров/образов
docker stop wg-easy
docker rm wg-easy
docker pull ghcr.io/wg-easy/wg-easy
docker rmi <container>
Генерация bcrypt hash для создания пароля к Web Интерфейсу.
docker run -it ghcr.io/wg-easy/wg-easy wgpw Password
PASSWORD_HASH='$2a$12$7fIw3pT4POpqWoViztrVcukbPiXDdTZ8SMhpDa/a7pRvsMwaJHal2'
Первичный запуск и преднастройка нового VPN сервера
docker run -d \
--name=wg-easy \
-e LANG=de \
-e WG_HOST=85.234.106.76 \
-e PASSWORD_HASH='$2a$12$7fIw3pT4POpqWoViztrVcukbPiXDdTZ8SMhpDa/a7pRvsMwaJHal2' \
-e PORT=51821 \
-e WG_PORT=51820 \
-v ~/.wg-easy:/etc/wireguard \
-p 51820:51820/udp \
-p 51821:51821/tcp \
--cap-add=NET_ADMIN \
--cap-add=SYS_MODULE \
--sysctl="net.ipv4.conf.all.src_valid_mark=1" \
--sysctl="net.ipv4.ip_forward=1" \
--restart unless-stopped \
ghcr.io/wg-easy/wg-easy
Проверка корректности отправки docker скрипта и HASH-а пароля
docker inspect \
--format "$(curl -s https://gist.githubusercontent.com/efrecon/8ce9c75d518b6eb863f667442d7bc679/raw/run.tpl)" \
wg-easy
Конфигурация новых клиентов будет храниться в файле /home/xeon/.wg-easy/wg0.conf