How to make an OpenVPN 90% as fast as a WireGuard

27/January/2023 openvpnkernelwireguard

There are a lot of articles on the Internet about improving OpenVPN speed, and often they are all focused on the settings of the server-client itself, packet sizes, encryption algorithms or disabling them. Everyone compares OpenVPN to a WireGuard. WireGuard works in kernel space and that’s what determines everything. Compared to userspace for openvpn. But that’s not quite true.

Here I must immediately clarify, that the given method of solving the problem is specific for virtual machines with small memory size, from 1Gb to 8Gb, in other cases you need to compare memory, link bandwidth and speed.

Here is a list of dynamically set values ​​relative to the system memory size:

  • 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
How to make...

Keep cryptsetup headers separate from the block device

5/November/2022 cryptsetuplukssecuritydetached-header

Storing cryptsetup headers separately has some advantages, firstly, without them, the block device itself is a set of Entropy, from which it is impossible to determine the type of partition / encryption / device.
Secondly, it is a small file that can be easily backed up without using dd.

Simple cheat sheet


Generate a password.

1
cat /dev/urandom | tr -dc '[[:print:]]' | fold -w 256 | sed 's/ //g' | fold -w128 | head -n 1
Keep cryptsetup headers...

When you read some pdf datasheet

22/December/2020 mediateklow-powerpdfdatasheet

Looking for whatever with low power consumption.
Found modules on mediatek, download documentation for SoM (System on Module).
You scroll through in search of how much the chip consumes.

MT7628 data not entered
MT7628 data not entered 826x1100
MT7628_no_power_data_exw.png
MT7688 data not entered
MT7688 data not entered 826x1169
MT7688_no_mAh_data_exw.png
When you read...

Optimizing the number of font glyphs for web use

12/March/2020 fontforgeglyphpyftsubsetwofffont

Select the required glyphs 1590x814 PTSansNarrowRegular.png
fontforge glyphs

Required packages apt install fontforge и pip install fonttools.

Let’s decide on the necessary glyphs: we need Latin, Cyrillic, special characters, including some Greek symbols (ΣΩαβγμ), Greek analogues that are similar in style but have different codes (∆∑µ), and a few more that can be used somewhere in the text or as elements to replace graphics (♪♫♬).

Why are there multiple variants of similar glyphs with different codes?

Because the µ (mu U+00b5) symbol and the Greek letter μ (mu U+03bc) in extended fonts can have their own glyph with different shapes, or, conversely, a common glyph, where similar characters in shape refer to the same glyph. Or, for example, the Greek Σ (Sigma U+03a3) is not the same as the symbol ∑ (summation U+2211).
But perhaps these symbols look the same on your screen.

Optimizing the number...

KVM over LVM

20/December/2019 kvmlvmpartedvirsh

Without further explanation

1
2
3
4
5
6
7
8
9
10
parted -a optimal /dev/sda
unit MiB
print free

#    Number  Start     End        Size       Type     File system     Flags
#            0,03MiB   1,00MiB    0,97MiB             Free Space
#     1      1,00MiB   1025MiB    1024MiB    primary  ext4            boot
#     2      1025MiB   5121MiB    4096MiB    primary  linux-swap(v1)
#     3      5121MiB   70657MiB   65536MiB   primary  ext4
#            70657MiB  476940MiB  406283MiB           Free Space
KVM over LVM...
Page 4 from 6