Налаштування WireGuard на CentOS, Debian, Ubuntu та FreeBSD чотирма різними способами

7/Серпень/2026 wireguardcentosdebianubuntufreebsd

WireGuard 1600x896 wireguard.png
WireGuard

Нижче наведено набір сніппетів для налаштування WireGuard для трьох різних дистрибутивів Linux та FreeBSD.
Припускається, що сервер працюватиме на Debian, а мережа буде 10.9.21.0/24.

Сервер, Debian

apt install wireguard-tools
nano /etc/network/interfaces.d/wg0

1
2
3
4
5
6
7
8
auto wg0
iface wg0 inet static
    address 10.9.21.1/32
    pre-up ip link add wg0 type wireguard
    pre-up wg setconf wg0 /etc/wireguard/wg0.conf
    up ip -4 route add 10.9.21.0/24 dev wg0
    # up /bin/systemctl restart sshd.service
    post-down ip link del wg0

umask 077
cd /etc/wireguard/
wg genkey > server-private.key
wg pubkey < server-private.key > server-public.key

nano /etc/wireguard/wg0.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[Interface]
ListenPort = 1234
PrivateKey = <server-private.key>

[Peer]
# Debian client
PublicKey = <public.key>
AllowedIPs = 10.9.21.3/32

[Peer]
# CentOS client
PublicKey = <public.key>
AllowedIPs = 10.9.21.4/32

[Peer]
# Ubuntu client
PublicKey = <public.key>
AllowedIPs = 10.9.21.5/32

[Peer]
# FreeBSD client
PublicKey = <public.key>
AllowedIPs = 10.9.21.6/32
Налаштування WireGuard на...

Як досягти швидкості OpenVPN в 89% від швидкості WireGuard

25/Січень/2023 openvpnkernelwireguard

В інтернеті маса публікацій на тему покращення швидкості OpenVPN, і часто всі вони зосереджені на налаштуваннях самого сервер-клієнта, розмірів пакетів, алгоритми шифрування або їх відключення. Усі приводять у порівняння WireGuard, мовляв, він працює в kernel space, у той час як openvpn у userspace. А це не зовсім так.

Тут я відразу маю уточнити, що наведений спосіб вирішення проблеми специфічний для віртуалок з малим об’ємом пам’яті, від 1Gb до 8Gb, в інших випадках треба зіставляти пам’ять, канал та швидкість.

Ось список значень, що динамічно встановлюються відповідно до обсягу пам’яті системи:

  • sysctl net.core.rmem_default
  • sysctl net.core.rmem_max
  • sysctl net.core.wmem_default
  • sysctl net.core.wmem_max
  • sysctl net.core.somaxconn
  • sysctl net.core.netdev_max_backlog
  • sysctl net.core.optmem_max
  • sysctl net.ipv4.udp_mem
  • sysctl net.ipv4.udp_rmem_min
  • sysctl net.ipv4.udp_wmem_min
  • sysctl net.ipv4.tcp_mem
  • sysctl net.ipv4.tcp_rmem
  • sysctl net.ipv4.tcp_wmem
  • sysctl net.ipv4.tcp_synack_retries
  • sysctl net.ipv4.tcp_keepalive_time
  • sysctl net.ipv4.tcp_max_tw_buckets
Як досягти швидкості...

Приклад bashrc

15/Жовтень/2021 bash

bash example
bash color example 543x243
bash_ps.png
bash server example
bash server color example 543x243
bash_ps1.png
bash lxc example
bash lxc color example 543x243
bash_ps2.png

Найпростіший приклад .bashrc з історією та своїми налаштуваннями кольору.
Допомагає інтуїтивно відрізняти продакшн сервер від роутера та тестове оточення від оточення розробки.

Приклад bashrc

Консольні утиліти для роботи з mmdb

11/Липень/2020 mmdbgeoip2mmdblookup

Насамперед варто перевірити дату складання,
використовуємо утиліту mmdb-dump-metadata від MaxMind
https://github.com/maxmind/MaxMind-DB-Reader-perl/tree/master/bin

Свіжість == Актуальність

mmdb-dump-metadata --file /usr/src/geoip2/GeoLite2-City.mmdb

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  GeoLite2 City database
  type:                  GeoLite2-City
  languages:             de
                         en
                         es
                         fr
                         ja
                         pt-BR
                         ru
                         zh-CN
  binary format version: 2.0
  build epoch:           1,589,304,163 (2020-05-12 17:22::43 UTC)
  IP version:            6
  node count:            3,790,930
  record size:           28 bits
Консольні утиліти для...

Компіляція динамічних модулів nginx поза цільовою системою застосування

14/Травень/2020 nginxgeoip2

Дуже не люблю тримати на сервері щось зібране самостійно.
Тому компіляція модуля здійснюється на ноутбуці, з тим же debian 10, а на сервер копіюються лише два динамічні модуля.

Деякі з необхідних пакетів
apt install libmaxminddb-dev libgeoip-dev libperl-dev

Пакет із репозиторію зібраний з наступними параметрами, які знадобляться при компіляції модуля nginx -V

Компіляція динамічних модулів...
Сторінка 1 з 2