--- title: "Как настроить VPN" date: 2022-04-03 draft: false --- В качестве софта для создания сети будет использоваться Wireguard. Хостинг предоставляется компанией . Сервер находится в Исландии, поэтому пинг может быть заметным. Ютуб смотреть можно, но не нужно. Количество трафика ограничено (1 терабайт в месяц на данный момент). ## Установка Все нужные способы установки перечислены на этой странице: - Основные системы: - На Windows следует скачать установщик и запустить его. - На macOS следует установить приложение Wireguard через App Store - На Linux зависит от дистрибутива. Основные пациенты: - Manjaro/Arch: `sudo pacman -S wireguard-tools` - Ubuntu/Debian: `sudo apt install wireguard` ## Настройка на Linux Сначала необходимо сгенерировать пару ключей для доступа к VPN: ``` wg genkey > private_key.pem wg pubkey < private_key.pem > public_key.pub ``` Содержимое файла нужно передать мне, чтобы я мог тебя добавить в сеть. После этого я выдам тебе твой IP-адрес внутри сети. Обозначим его как `
`. В файле `/etc/wireguard/wg0.conf` следует прописать следующие настройки: ``` [Interface] PrivateKey = <Содержимое файла private_key.pem> Address =
/32 DNS = 1.1.1.1 [Peer] PublicKey = yAGhH8hkukwjbw3R4MBUGoVEltgd7Wn3uGk6m0eD5SI= AllowedIPs = 0.0.0.0/0 Endpoint = vasthecat.com:51820 PersistentKeepalive = 20 ``` На Linux `AllowedIPs` отличается от mac и windows, так как по какой-то причине vpn отказывается работать настройке как на этих системах. Почему? Пока что хз. Пока что я не нашёл как можно на линуксе управлять Wireguard из GUI, поэтому используем консоль. Чтобы запустить VPN следует запустить команду ``` wg-quick up wg0 ``` Для отключения VPN используется команда ``` wg-quick down wg0 ``` ## Настройка на macOS После установки приложения Wireguard из App Store нас встречает такое окно: ![Wireguard macOS Window](/images/vpn/mac-wg-empty.png) Нажимаем на плюсик в нижнем левом углу и на кнопку `Add Empty Tunnel...`. ![Wireguard macOS Tunnel](/images/vpn/mac-tunnel-empty.png) Даём туннелю какое-нибудь название и копируем строчку после надписи `Public key:`. Её нужно передать мне. В ответ на эту строчку я передам тебе твой IP-адрес в сети. Обозначим его как `
`. После уже присутствующей строчки в конфиге нужно добавить следующие строки: ``` ... Address =
/32 DNS = 1.1.1.1 [Peer] PublicKey = yAGhH8hkukwjbw3R4MBUGoVEltgd7Wn3uGk6m0eD5SI= AllowedIPs = 1.0.0.0/8, 2.0.0.0/8, 3.0.0.0/8, 4.0.0.0/6, 8.0.0.0/7, 11.0.0.0/8, 12.0.0.0/6, 16.0.0.0/4, 32.0.0.0/3, 64.0.0.0/2, 128.0.0.0/3, 160.0.0.0/5, 168.0.0.0/6, 172.0.0.0/12, 172.32.0.0/11, 172.64.0.0/10, 172.128.0.0/9, 173.0.0.0/8, 174.0.0.0/7, 176.0.0.0/4, 192.0.0.0/9, 192.128.0.0/11, 192.160.0.0/13, 192.169.0.0/16, 192.170.0.0/15, 192.172.0.0/14, 192.176.0.0/12, 192.192.0.0/10, 193.0.0.0/8, 194.0.0.0/7, 196.0.0.0/6, 200.0.0.0/5, 208.0.0.0/4, 10.13.37.0/24, 1.1.1.1/32 Endpoint = vasthecat.com:51820 PersistentKeepalive = 20 ``` В поле `AllowedIPs` так много записей, чтобы исключить из них все локальные IP-адреса (типа `192.168.*.*`). В результате окошко выглядит примерно так (Address тот, который я выдам): ![Wireguard macOS Tunnel Configured](/images/vpn/mac-tunnel-configured.png) ## Настройка на Windows Настройка на Windows такая же, как на macOS. После установки приложения Wireguard нас встречает такое окно: ![Wireguard Windows](/images/vpn/win-wg-empty.png) Нажимаем на треугольник в нижнем левом углу и выбираем кнопку `Добавить пустой туннель...`. ![Wireguard Windows Tunnel](/images/vpn/win-tunnel-empty.png) Даём туннелю какое-нибудь название и копируем строчку после надписи `Публичный ключ:`. Её нужно передать мне. В ответ на эту строчку я передам тебе твой IP-адрес в сети. Обозначим его как `
`. После уже присутствующей строчки в конфиге нужно добавить следующие строки: ``` ... Address =
/32 DNS = 1.1.1.1 [Peer] PublicKey = yAGhH8hkukwjbw3R4MBUGoVEltgd7Wn3uGk6m0eD5SI= AllowedIPs = 1.0.0.0/8, 2.0.0.0/8, 3.0.0.0/8, 4.0.0.0/6, 8.0.0.0/7, 11.0.0.0/8, 12.0.0.0/6, 16.0.0.0/4, 32.0.0.0/3, 64.0.0.0/2, 128.0.0.0/3, 160.0.0.0/5, 168.0.0.0/6, 172.0.0.0/12, 172.32.0.0/11, 172.64.0.0/10, 172.128.0.0/9, 173.0.0.0/8, 174.0.0.0/7, 176.0.0.0/4, 192.0.0.0/9, 192.128.0.0/11, 192.160.0.0/13, 192.169.0.0/16, 192.170.0.0/15, 192.172.0.0/14, 192.176.0.0/12, 192.192.0.0/10, 193.0.0.0/8, 194.0.0.0/7, 196.0.0.0/6, 200.0.0.0/5, 208.0.0.0/4, 10.13.37.0/24, 1.1.1.1/32 Endpoint = vasthecat.com:51820 PersistentKeepalive = 20 ``` В поле `AllowedIPs` так много записей, чтобы исключить из них все локальные IP-адреса (типа `192.168.*.*`). В результате окошко выглядит примерно так (Address тот, который я выдам): ![Wireguard Windows Tunnel Configured](/images/vpn/win-tunnel-configured.png)