Рассмотрим установку VPN WireGuard
Авто режим при помощи скрипта
Для простоты использования можно использовать скрипт, который установит все нужные зависимости и настроит сервер на корректную работу:
curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh chmod +x wireguard-install.sh
И запустить:
./wireguard-install.sh
Данный скрипт позволяет установить — настроить сервер, добавлять пользователей и генерить для них QR-коды, удалять пользователей или же сам сервер.
Ручная настройка сервера
Все действия выполнялись под root правами SU
Первым делом установим WireGuard
pacman -S wireguard-tools
После установки загружаем модули ядра и проверяем что они загружены
modprobe wireguard && lsmod | grep wireguard
Переходим в каталог wireguard
cd /etc/wireguard
Генерируем ключи
umask 077
wg genkey | tee server_private.key | wg pubkey | tee server_public.key
wg genkey | sudo tee client_private.key | wg pubkey | sudo tee client_public.key
Будет создано 4 файла с ключами
# cat server_private.key keykeykeykeykeykeykeykeykeykeykeykeykeykey= # cat server_public.key keykeykeykeykeykeykeykeykeykeykeykeykeykey= # cat client_private.key keykeykeykeykeykeykeykeykeykeykeykeykeykey= # cat client_public.key keykeykeykeykeykeykeykeykeykeykeykeykeykey=
Включаем форвардинг в sysctl
И добавляем в /etc/sysctl.d/99-sysctl.conf:
nano /etc/sysctl.d/99-sysctl.conf
Строки:
net.ipv4.ip_forward = 1 net.ipv4.conf.all.rp_filter = 1 net.ipv4.conf.default.proxy_arp = 0 net.ipv4.conf.default.send_redirects = 1 net.ipv4.conf.all.send_redirects = 0
Перечитаем конфигурацию:
sysctl -p
Создаем конфиг нашего сервера wireguard со следующим содержимым:
nano /etc/wireguard/wg0.conf
[Interface] Address = 10.0.0.1/24 PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE ListenPort = 51820 PrivateKey = SERVERPRIVATEKEY [Peer] PublicKey = CLIENTPUBLICKEY AllowedIPs = 10.0.0.2/32
Вместо SERVERPRIVATEKEY и CLIENTPUBLICKEY мы прописываем ключи, из созданных ранее файлов.
Вместо eth0 прописываем ваш интерфейс, можно посмотреть командой ip a
Сохраняем изменения, включаем и запускаем сервис:
systemctl enable --now wg-quick@wg0.service
Либо запускаем вручную:
wg-quick up wg0
Теперь требуется настроить клиент
Так же устанавливаем Wireguard
pacman -S wireguard-tools
Создаем конфиг файл
nano /etc/wireguard/wg0-client.conf
Со следующим содержанием
[Interface] Address = 10.0.0.2/32 PrivateKey = CLIENTPRIVATEKEY DNS = 1.1.1.1 #Ваш выбранный сервер ДНС [Peer] PublicKey = SERVERPUBLICKEY Endpoint = РЕАЛЬНЫЙ_ИП_СЕРВЕРА:51820 AllowedIPs = 0.0.0.0/0 PersistentKeepalive = 21
Вместо SERVERPUBLICKEY и CLIENTPRIVATEKEY мы прописываем ключи, из созданных ранее файлов на сервере.
Сохраняем файл и пробуем подключится к нашему серверу
wg-quick up wg0-client
Для отключения от сервера
wg-quick down wg0-client
Спасибо, голову сломал как его на Манжаро настроить, жаль нет клиента с фейсом как на андройд или Виндовс
Что значит в настройке сервера – “Вместо eth0 прописываем ваш интерфейс, можно посмотреть командой ip a”? Что именно записывать из вывода ip a,
Имя вашего интернет соединения, например wlan0 или eth0 и т.п.
Ссылка на скрипт уже немного другая.
Репа скрипта не обновлялась с 30 января, как она стала другой?