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...

Pure-sine wave inverter Teardown

25/January/2023 edecoainverter

Pure-sine wave inverter 4878x2743 IMG_20221228_153454.jpg
Pure-sine wave inverter


Remote controller
Remote controller 4904x2758
IMG_20221228_153527.jpg
Battery connection
Battery connection 4044x2275
IMG_20221228_153544.jpg
Disassembled
Disassembled 5235x2945
IMG_20230110_135009.jpg
Pure-sine wave inverter...

Soldering station prototype on stm32 from RobotDyn

30/November/2022 soldering-ironstm32

Soldering station on STM32F103 4032x3024 IMG_4591.jpg
Soldering station on STM32F103

RobotDyn Black Pill on STM32F103C8T6

Soldering station prototype...

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...

Abandoned Old Mill

12/October/2022 landscape

Old Mill
Old Mill 1440x1080
IMG_3728.jpg
Old Mill
Old Mill 1440x1085
IMG_3730.jpg
Old Mill
Old Mill 1440x1080
IMG_3966.jpg
Abandoned Old Mill...
Page 10 from 13