Настройка 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

24/Январь/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
Консольные утилиты для...

Сборка динамических модулей geoip2 для nginx

14/Май/2020 nginxgeoip2

Сильно не люблю держать на сервере что-либо собранное самостоятельно.
Посему сборка модуля производится на ноутбуке, с тем же debian 10, а на сервер копируются только два динамических модуля.

Некоторые из необходимых пакетов
apt install libmaxminddb-dev libgeoip-dev libperl-dev

Пакет из репозитория собран со следующими параметрами, которые понадобятся при сборке модуля nginx -V

Сборка динамических модулей...
Страница 1 из 3