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

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

Интерактивный поиск для jekyll на jquery и json

18/Апрель/2020 jekylljqueryjson

Серверная часть

search.json

1
2
3
4
5
6
7
8
9
10
---
layout: null
---
[{% for post in site.posts %}{
      "title"    : "{{ post.title | escape }}",
      "category" : "{{ post.categories | join: ', ' }}",
      "tags"     : "{{ post.tags | join: ', ' }}",
      "url"      : "{{ site.url }}{{ post.url }}",
      "text"     : "{{ post.content | strip_html | remove:  '"' | strip_newlines | truncate:100 }}"
    }{% unless forloop.last %},{% endunless %}{% endfor %}]

Добавляем блок поска в нужные шаблоны в _layouts

1
2
3
4
  <div class="sb">
    <label for="searchbox">Быстрый поиск по сайту</label>
    <div class="is"><input type="text" name="search" id="searchbox" size="20" maxlength="20" value="Fast Search" class="inputbox" /></div>
  </div>
Интерактивный поиск для...
Страница 1 из 2