Как я настраивал wireguard
Введение
Wireguard это современный протокол VPN, его можно использовать для того чтобы связать в одну локальную сеть компьютеры находящиеся в разных местах или использовать для обхода блокировок роскомнадзора. Для настройки нам потребуется сервер, я не буду описывать где его взять, так как эта информация зависит от огромного количества факторов и нет универсального совета. Главное чтобы сервер находился не в России, его адрес был не заблокирован и вы имели возможность за него платить из России. Если планируется оплата биткоинами я могу посоветовать https://host4coins.net/ . Искать сервера можно тут. Я исхожу из того что сервер уже арендован и управляется по SSH. Советую использовать сервера на Debian 11.
Настройка сервера
И так, подключаемся к серверу
ssh root@<"адрес сервера">
Обновляем и устанавливаем необходимые пакеты
apt update
apt updrade
apt install wireguard qrencode -y
Разрешаем проброс пакетов
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
Теперь генерируем публичный и приватный ключи
wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey
И создаём файл конфигурации
nano /etc/wireguard/wg0.conf
Записываем в него
[Interface]
Address = 10.0.0.1/24
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
ListenPort = 51820
PrivateKey = <"Тут ваш privatecey">
Нужно иметь ввиду что вместо ’eth0’ может быть другой серевой интерфейс Посмотреть список доступных интерфейсов можно командой ip a
Посмотреть PrivateKey можно командой cat /etc/wireguard/privatekey
Теперь запустим интерфейс:
wg-quick up wg0
И запустим сервис:
systemctl enable wg-quick@wg0
Теперь можно посмотреть работает ли wireguard:
wg show wg0
Кроме того можно посмотреть работает ли служба:
systemctl status wg-quick@wg0
Если вдруг у вас будут проблемы то сначала сделайте
wg-quick down wg0
А потом перезапустите сервис
systemctl start wg-quick@wg0
После этого посмотрите статус
systemctl status wg-quick@wg0
Настройки клиента
Подготовка на сервере
Генерируем ключи для клиента на сервере
wg genkey | tee /etc/wireguard/client_privatekey | wg pubkey | tee /etc/wireguard/client_publickey
Откроем файл конфигурации и допишем в конец
[Peer]
PublicKey = <"client_publickey">
AllowedIPs = 10.0.0.4/32
Перезапустим wireguard
systemctl restart wg-quick@wg0
Создать файл конфигурации для клиента
nano /etc/wireguard/client.conf
И записваем туда
[Interface]
PrivateKey = <"client-privatecey">
Address = 10.0.0.4/32
[Peer]
PublicKey = <"publickey">
Endpoint = <"Адрес сервера">:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 20
В поле Address пишем тот же ip адрес кторый вписали в конфигурацию сервера. Для каждого клиента адрес должен быть уникальным.
Теперь выводим QR-код на экран
qrencode -t ansiutf8 < /etc/wireguard/client.conf
Настройка телефона
- Скачиваем приложение wireguard
- Нажимаем “+” и “Сканировать QR-код”
- Сканируем QR-код с экрана компьютера
После добавления каждого нового клиента нужно перезапускать сервер
systemctl restart wg-quick@wg0