Як досягти швидкості 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
Як досягти швидкості...

Тримаємо заголовки cryptsetup окремо від блочного пристрою

5/Листопад/2022 cryptsetuplukssecuritydetached-header

Окреме зберігання заголовків cryptsetup дає деякі переваги, по-перше, без них, сам блочний пристрій - це набір ентропії, по якому не можна визначити тип розділу / шифрування / пристрою.
По-друге, це файл малого розміру, який просто бекапити не прибігаючи до dd.

Проста шпаргалка


Генеруємо пароль, записуємо.

1
cat /dev/urandom | tr -dc '[[:print:]]' | fold -w 256 | sed 's/ //g' | fold -w128 | head -n 1
Тримаємо заголовки cryptsetup...

Приклад 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

Коли читаєш деякі pdf-datasheet

22/Грудень/2020 mediateklow-powerpdfdatasheet

Шукаєш щось із низьким енергоспоживанням.
Знаходиш модулі на mediatek, завантажуєш документацію на SoM (System on Module).
Гортаєш у пошуках скільки ж споживає чіп.

MT7628 дані не введені
MT7628 дані не введені 826x1100
MT7628_no_power_data_exw.png
MT7688 дані не введені
MT7688 дані не введені 826x1169
MT7688_no_mAh_data_exw.png
Коли читаєш деякі...

Налаштування webssh з обмеженням мережевих підключень

26/Вересень/2020 nginxwebsshxterm-js

Перед тим, як почати

Наведений варіант налаштування хоч і має деякий умовний ступінь захисту від сторонніх, проте він не передбачає публічного використання, включаючи звичайних користувачів, він розглядається як запасний канал управління для домашнього сервера і тільки для нього у випадку, якщо штатні та надійні канали немає можливості використовувати, наприклад, якщо доступний лише браузер у телефоні.
Хоча, для телефону є інші варіанти, той же Termux, і телефон не може повною мірою бути довіреним пристроєм, проте приклад є приклад.

Незважаючи на те, що сам wssh-клієнт може використовувати one-time-password, основним захистом повинен бути nginx з auth_basic та зв’язкою логін-пароль для location /webssh/ які я раджу генерувати нові після використання старих. Так як вони можуть бути використані для авторизації з обладнання, до якого немає повної довіри.
Так, звісно ж, робити у жодному разі не треба.
Але якщо дуже хочеться щось включити/вимкнути/перезапустити, то можна.

Налаштування webssh з...
Сторінка 4 з 6