НастраиваСм простой VPN с WireGuard ΠΈ Raspberry Pi Π² качСствС сСрвСра

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ WireGuard станСт Ρ‡Π°ΡΡ‚ΡŒΡŽ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ ядра Linux 5.6, я Ρ€Π΅ΡˆΠΈΠ» ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этот VPN с ΠΌΠΎΠΈΠΌ LTE-ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠΌ/Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ доступа Π½Π° Raspberry Pi.

ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅

  • Raspberry Pi 3 с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ LTE ΠΈ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΌ IP-адрСсом. Π—Π΄Π΅ΡΡŒ Π±ΡƒΠ΄Π΅Ρ‚ VPN-сСрвСр (Π΄Π°Π»Π΅Π΅ Π² тСкстС ΠΎΠ½ называСтся edgewalker)
  • Π’Π΅Π»Π΅Ρ„ΠΎΠ½ Π½Π° Android, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ VPN для всСх ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΉ
  • Ноутбук Linux, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ VPN Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ сСти

КаТдоС устройство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ VPN, Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊΠΎ всСм Π΄Ρ€ΡƒΠ³ΠΈΠΌ устройствам. НапримСр, Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ Π²Π΅Π±-сСрвСру Π½Π° Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ΅, Ссли ΠΎΠ±Π° устройства ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π°ΡΡ‚ΡŒΡŽ сСти VPN. Если настройка получится достаточно простой, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΊ VPN ΠΈ дСсктопа (ΠΏΠΎ Ethernet).

Учитывая, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½Ρ‹Π΅ ΠΈ бСспроводныС соСдинСния со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ становятся всё ΠΌΠ΅Π½Π΅Π΅ бСзопасны (Ρ‚Π°Ρ€Π³Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π°Ρ‚Π°ΠΊΠΈ, Π°Ρ‚Π°ΠΊΠ° KRACK ΠΏΠΎ Π²Π·Π»ΠΎΠΌΡƒ WPA2 ΠΈ Π°Ρ‚Π°ΠΊΠ° Dragonblood ΠΏΡ€ΠΎΡ‚ΠΈΠ² WPA3), я Π²ΡΠ΅Ρ€ΡŒΡ‘Π· Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования WireGuard для всСх ΠΌΠΎΠΈΡ… устройств, нСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π² ΠΊΠ°ΠΊΠΎΠΉ срСдС ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚.

Установка ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния

WireGuard прСдоставляСт ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ скомпилированныС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° дистрибутивов Linux, Windows ΠΈ macOS. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ для Android ΠΈ iOS ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Π£ мСня послСдняя Fedora Linux 31, Π° ΠΏΠ΅Ρ€Π΅Π΄ установкой я полСнился ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ руководство. ΠŸΡ€ΠΎΡΡ‚ΠΎ Π½Π°ΡˆΡ‘Π» ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ wireguard-tools, установил ΠΈΡ…, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π½Π΅ ΠΌΠΎΠ³ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚. Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅Π΅ исслСдованиС ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎ, Ρ‡Ρ‚ΠΎ Ρƒ мСня Π½Π΅ установлСн ΠΏΠ°ΠΊΠ΅Ρ‚ wireguard-dkms (с сСтСвым Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ), Π° Π΅Π³ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΌΠΎΠ΅Π³ΠΎ дистрибутива.

Если Π±Ρ‹ я ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π» ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ, Ρ‚ΠΎ сдСлал Π±Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ шаги:

$ sudo dnf copr enable jdoss/wireguard
$ sudo dnf install wireguard-dkms wireguard-tools

На Raspberry Pi Ρƒ мСня установлСн дистрибутив Raspbian Buster, Ρ‚Π°ΠΌ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ wireguard, устанавливаСм Π΅Π³ΠΎ:

$ sudo apt install wireguard

На Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅ Android я установил ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ WireGuard VPN ΠΈΠ· ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° Google App Store.

Установка ΠΊΠ»ΡŽΡ‡Π΅ΠΉ

Для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΡƒΠ·Π»ΠΎΠ² Wireguard ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ схСму Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ/ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΡƒΠ·Π»ΠΎΠ² VPN. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡ΠΈ VPN с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

$ wg genkey | tee wg-laptop-private.key |  wg pubkey > wg-laptop-public.key
$ wg genkey | tee wg-server-private.key |  wg pubkey > wg-server-public.key
$ wg genkey | tee wg-mobile-private.key |  wg pubkey > wg-mobile-public.key

Π­Ρ‚ΠΎ Π΄Π°Ρ‘Ρ‚ Π½Π°ΠΌ Ρ‚Ρ€ΠΈ ΠΏΠ°Ρ€Ρ‹ ΠΊΠ»ΡŽΡ‡Π΅ΠΉ (ΡˆΠ΅ΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²). НС Π±ΡƒΠ΄Π΅ΠΌ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Ρ„Π°ΠΉΠ»Ρ‹ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π°Ρ…, Π° скопируСм сюда содСрТимоС: ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡Β β€” это ΠΎΠ΄Π½Π° строка Π² base64.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ для VPN-сСрвСра (Raspberry Pi)

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ довольно простая, я создал ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Π°ΠΉΠ» /etc/wireguard/wg0.conf:

[Interface]
Address = 10.200.200.1/24
ListenPort = 51820
PrivateKey = <copy private key from wg-server-private.key>
PostUp   = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o wwan0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o wwan0 -j MASQUERADE

[Peer]
# laptop
PublicKey = <copy public key from wg-laptop-public.key>
AllowedIPs = 10.200.200.2/32

[Peer]
# mobile phone
PublicKey = <copy public key from wg-mobile-public.key>
AllowedIPs = 10.200.200.3/32

ΠŸΠ°Ρ€Ρƒ Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠΉ:

  • Π’ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ мСста Π½ΡƒΠΆΠ½ΠΎ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ строки ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ
  • Моя ΡΠ΅Ρ‚ΡŒ VPN ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ 10.200.200.0/24
  • Для ΠΊΠΎΠΌΠ°Π½Π΄ PostUp/PostDown Ρƒ мСня ΡƒΠΊΠ°Π·Π°Π½ внСшний сСтСвой интСрфСйс wwan0, Ρƒ вас ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, eth0)

Π‘Π΅Ρ‚ΡŒ VPN Π»Π΅Π³ΠΊΠΎ поднимаСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

$ sudo wg-quick up wg0

Одна малСнькая Π΄Π΅Ρ‚Π°Π»ΡŒ: Π² качСствС DNS-сСрвСра я использовал dnsmasq с привязкой ΠΊ сСтСвому интСрфСйсу br0, я Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΠ» устройства wg0 Π² список Ρ€Π°Π·Ρ€Π΅ΡˆΡ‘Π½Π½Ρ‹Ρ… устройств. Π’ dnsmasq это дСлаСтся ΠΏΡƒΡ‚Ρ‘ΠΌ добавлСния Π½ΠΎΠ²ΠΎΠΉ строки с сСтСвым интСрфСйсом Π² Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ /etc/dnsmasq.conf, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

interface=br0
interface=wg0

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, я Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ iptable, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π½Π° ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ UDP-ΠΏΠΎΡ€Ρ‚ (51280):

$ sudo iptables -I INPUT -p udp --dport 51820 -j ACCEPT

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ автоматичСский запуск VPN-туннСля:

$ sudo systemctl enable [email protected]

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π½Π° Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ΅

На Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ΅ создаём Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ /etc/wireguard/wg0.conf с Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΆΠ΅ настройками:

[Interface]
Address = 10.200.200.2/24
PrivateKey = <copy private key from wg-laptop-private.key>

[Peer]
PublicKey = <copy public key from wg-server-public.key>
AllowedIPs = 10.200.200.0/24
Endpoint = edgewalker:51820

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ:

  • ВмСсто edgewalker Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ IP ΠΈΠ»ΠΈ хост VPN-сСрвСра
  • Установив AllowedIPs Π½Π° 10.200.200.0/24, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ VPN Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для доступа ΠΊ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ сСти. Π’Ρ€Π°Ρ„ΠΈΠΊ Π½Π° всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ IP-адрСса/сСрвСры Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΈΠ΄Ρ‚ΠΈ ΠΏΠΎ Β«ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΌΒ» ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΠΊΠ°Π½Π°Π»Π°ΠΌ. Π’Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ настроСнный DNS-сСрвСр Π½Π° Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ΅.

Для тСстирования ΠΈ автоматичСского запуска ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ‚Π΅ ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ wg-quick ΠΈ systemd:

$ sudo wg-quick up wg0
$ sudo systemctl enable [email protected]

Настройка ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π½Π° Android-Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π΅

Для Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π° Android создаём ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (Π½Π°Π·ΠΎΠ²Ρ‘ΠΌ Π΅Π³ΠΎ mobile.conf):

[Interface]
Address = 10.200.200.3/24
PrivateKey = <copy private key from wg-mobile-private.key>
DNS = 10.200.200.1
        
[Peer]
PublicKey = <copy public key from wg-server-public.key>
AllowedIPs = 0.0.0.0/0
Endpoint = edgewalker:51820

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½Π° Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ΅, Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ наш VPN-сСрвСр Π² качСствС DNS-сСрвСра (строка DNS), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· VPN-Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒ вСсь Ρ‚Ρ€Π°Ρ„ΠΈΠΊ (AllowedIPs = 0.0.0.0/0).

ВмСсто копирования Ρ„Π°ΠΉΠ»Π° Π½Π° мобильноС устройство ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² QR-ΠΊΠΎΠ΄:

$ sudo apt install qrencode
$ qrencode -t ansiutf8 < mobile.conf

QR-ΠΊΠΎΠ΄ Π²Ρ‹ΠΉΠ΄Π΅Ρ‚ Π² консоль ΠΊΠ°ΠΊ ASCII. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ· прилоТСния Android VPN ΠΈ автоматичСски Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ VPN-Ρ‚ΡƒΠ½Π½Π΅Π»ΡŒ.

Π’Ρ‹Π²ΠΎΠ΄

Настройка WireGuard просто волшСбна ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с OpenVPN.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com