Как добиться скорости 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
Как добиться скорости...

Держим заголовки 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

Ищешь “whatever” с низким энергопотреблением.
Находишь модули на 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 из 7