Deixo aqui isto. Pode ser que seja útil a alguém.
Há uns dois meses testei a performance do Wireguard e do OpenVPN em vários computadores, com diversos Sistemas operativos do lado servidor e cliente. Dentro desses computadores, estão o
Raspberry Pi 3+ e
Raspberry Pi 4.
Fiz estes testes usei um Cliente numa Máquina Virtual Hyper-V, com 2 cores, num Core i3-8100, numa rede Gigabit, a usar como gateway os computadores que testei, ligados sem VPN, com Wireguard e com OpenVPN. Para testar a velocidade, fazia um teste de velocidade a partir do cliente, usando o servidor mais perto do ISP no
speedtest.net. A ligação à Internet é de 500 Mbits de download e 100 Mbits de upload e não estava a ser usada, sem ser para estes testes.
Do lado do servidor, a fazer de gateway, sem VPN, com Wireguard ou com o OpenVPN, usei o seguinte hardware:
Do lado do cliente, usei o seguinte hardware:
Do lado do servidor, a fazer de gateway, sem VPN, com Wireguard ou com o OpenVPN, usei os seguintes Sistemas Operativos:
- Raspbian 32 bit
- Ubuntu 18.04 64 bit
- Ubuntu 20.04 64 bit
Do lado do cliente, usei os seguintes Sistemas Operativos:
- Windows 10 1909 64 bit (Quando nada é indicado indicado dentro de Parêntesis no gráfico)
- Ubuntu 20.04 64 bit (Quando indicado dentro de Parêntesis no gráfico)
Configuração do Wireguard, do lado do servidor:
Código:
[Interface]
PrivateKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Address = 10.6.0.1/24
ListenPort = 51820
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
PresharedKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
AllowedIPs = 10.6.0.2/32
Configuração do OpenVPN, do lado do servidor:
Código:
dev tun
proto udp
port 1194
ca /etc/openvpn/easy-rsa/pki/ca.crt
cert /etc/openvpn/easy-rsa/pki/issued/rpiopenvpn.crt
key /etc/openvpn/easy-rsa/pki/private/rpiopenvpn.key
dh none
ecdh-curve prime256v1
topology subnet
server 10.8.0.0 255.255.255.0
push "dhcp-option DNS 10.8.0.1"
push "redirect-gateway def1"
client-to-client
duplicate-cn
client-config-dir /etc/openvpn/ccd
keepalive 15 120
remote-cert-tls client
tls-version-min 1.2
tls-crypt /etc/openvpn/easy-rsa/pki/ta.key
cipher AES-256-CBC
auth SHA256
user openvpn
group openvpn
persist-key
persist-tun
crl-verify /etc/openvpn/crl.pem
status /var/log/openvpn-status.log 20
status-version 3
syslog
verb 3
NOTA1: Naquela altura, só existia módulo de kernel do Wireguard em Linux. Isso é importante, porque, na maior parte das situações, quando o servidor e cliente estão a usar o módulo de kernel, a diferença de performance nota-se e muito.
NOTA2: Do lado do cliente, em Windows, usei os clientes oficiais que estão nos sites do Wireguard e do OpenVPN.
NOTA3: No Raspberry Pi 4, com o Ubuntu 18.04, a compilação do módulo de kernel do Wireguard falhava e não percebi onde estava o problema.
Aqui ficam os resultados
: