Run VPN client Wireguard - Kraft2k/py_info_inv GitHub Wiki
Обновляем сервер:
apt update && apt upgrade -y
Ставим wireguard:
apt install -y wireguard
Генерим ключи сервера:
wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey
Проставляем права на приватный ключ:
chmod 600 /etc/wireguard/privatekey
Проверим, как у вас называется сетевой интерфейс:
ip a
Скорее всего у вас сетевой интерфейс eth0, но возможно и другой, например, ens3 или как-то иначе. Это название интерфейса используется далее в конфиге /etc/wireguard/wg0.conf, который мы сейчас создадим:
vim /etc/wireguard/wg0.conf
[Interface]
PrivateKey =
Address = 10.0.0.1/24
ListenPort = 51830
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
Если не знаете текстовый редактор vim — откройте файл с nano, он проще в работе.
Обратите внимание — в строках PostUp и PostDown использован как раз сетевой интерфейс eth0. Если у вас другой — замените eth0 на ваш.
Вставляем вместо содержимое файла /etc/wireguard/privatekey
Настраиваем IP форвардинг:
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p
Включаем systemd демон с wireguard:
systemctl enable [email protected]
systemctl start [email protected]
systemctl status [email protected]
Создаём ключи клиента:
wg genkey | tee /etc/wireguard/iphone_gleb_privatekey | wg pubkey | tee /etc/wireguard/iphone_gleb_publickey
Добавляем в конфиг сервера клиента:
vim /etc/wireguard/wg0.conf
[Peer]
PublicKey = <iphone_gleb_publickey>
AllowedIPs = 10.0.0.2/32
Вместо <iphone_gleb_publickey> — заменяем на содержимое файла /etc/wireguard/iphone_gleb_publickey
Перезагружаем systemd сервис с wireguard:
systemctl restart wg-quick@wg0
systemctl status wg-quick@wg0
На локальной машине (например, на ноутбуке) создаём текстовый файл с конфигом клиента:
vim iphone_gleb_wg.conf
[Interface]
PrivateKey = OGQGxmkhePwige/a7mjL0qtwNB0cy985u6DwwTqE3HE=
Address = 10.0.0.3/32
DNS = 8.8.8.8
[Peer]
PublicKey = ZInoBriHPl9H175BiNt7lPzJ7TA5bKWLqpa89eHzGQU=
Endpoint = :51830
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 20
Здесь заменяем на приватный ключ клиента, то есть содержимое файла /etc/wireguard/iphone_gleb_privatekey на сервере. заменяем на публичный ключ сервера, то есть на содержимое файла /etc/wireguard/publickey на сервере. заменяем на IP сервера.
sudo su
sudo apt install openresolv
cd /etc/wireguard/
Create wg0.conf
Show ip address https://ifconfig.me/
Run VPN client
wg-quick up wg0
Add the Config to the iOS Device The client config file is on the server. The easy way to copy that config to the client is via QR code. Install qrencode on the WireGuard server.
sudo apt install qrencode --assume-yes
Print the QR code in the server terminal.
qrencode --read-from=iphone_domenica_wg.conf --type=UTF8 --level=M