1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
---
title: "Как настроить VPN"
date: 2022-04-03
draft: false
---
В качестве софта для создания сети будет использоваться Wireguard. Хостинг
предоставляется компанией <https://1984.is/>. Сервер находится в Исландии, поэтому
пинг может быть заметным. Ютуб смотреть можно, но не нужно. Количество трафика
ограничено (1 терабайт в месяц на данный момент).
## Установка
Все нужные способы установки перечислены на этой странице:
- <https://www.wireguard.com/install/>
Основные системы:
- На 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-адрес внутри сети. Обозначим его как
`<ADDRESS>`.
В файле `/etc/wireguard/wg0.conf` следует прописать следующие настройки:
```
[Interface]
PrivateKey = <Содержимое файла private_key.pem>
Address = <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 нас встречает такое окно:

Нажимаем на плюсик в нижнем левом углу и на кнопку `Add Empty Tunnel...`.

Даём туннелю какое-нибудь название и копируем строчку после надписи `Public
key:`. Её нужно передать мне. В ответ на эту строчку я передам тебе твой
IP-адрес в сети. Обозначим его как `<ADDRESS>`.
После уже присутствующей строчки в конфиге нужно добавить следующие строки:
```
...
Address = <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 тот, который я выдам):

## Настройка на Windows
Настройка на Windows такая же, как на macOS.
После установки приложения Wireguard нас встречает такое окно:

Нажимаем на треугольник в нижнем левом углу и выбираем кнопку
`Добавить пустой туннель...`.

Даём туннелю какое-нибудь название и копируем строчку после надписи `Публичный
ключ:`. Её нужно передать мне. В ответ на эту строчку я передам тебе твой
IP-адрес в сети. Обозначим его как `<ADDRESS>`.
После уже присутствующей строчки в конфиге нужно добавить следующие строки:
```
...
Address = <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 тот, который я выдам):

|