Установка VPN клиента
sudo apt install resolvconf
sudo apt install wireguard
sudo chmod -R 755 /home/xeon/.wg-easy/
sudo vim /home/xeon/.wg-easy/wg0.conf
[Interface]
PrivateKey = <>
Address = 10.8.0.6/24
DNS = 1.1.1.1
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51820
[Peer]
PublicKey = <>
PresharedKey = <>
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 0
Endpoint = 188.225.31.172: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.
Остановка/Удаление контейнеров/образов старого VPN клиента
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