Pour contourner le problème de limitation à 5mbit/s dans le cas d'une connexion wireguard entre un serveur linux et un client qui ne tagge pas les paquets handshake (apparement : clients windows, au moins certains android), si on est admin du serveur linux et qu'il est relativement moderne et configuration de firewall préalable (ne pas mélanger avec du viel iptables).
root@my-linux-server:~# editor /etc/nftables.conf
(personnaliser les lignes define et les commandes mentionnées après selon le nom de l'interface réseau connectée à internet et la valeur ListenPort configurée dans votre config WireGuard).
#!/usr/sbin/nft -f
define if_internet = ens6
define port_wireguard = 5678
flush ruleset
table inet filter {
chain input { type filter hook input priority filter; policy accept; }
chain forward { type filter hook forward priority filter; policy accept; }
chain output {
type filter hook output priority filter; policy accept;
oifname $if_internet udp sport $port_wireguard ip dscp set cs0
}
}
Puis activer une première fois et vérifier avec :
root@my-vps:~# /etc/nftables.conf
root@my-vps:~# nft list ruleset
Cette commande list ruleset devrait montrer les règles présente et actives au niveau du kernel. Elle devrait notamment contenir la ligne qui se termine par ip dscp set cs0.
Pour observer le traffic modifié, éteindre le tunnel depuis le client puis, sur le serveur :
root@my-vps:~# tcpdump -nvc10 -i ens6 udp port 5678
tcpdump: listening on ens6, link-type EN10MB (Ethernet), snapshot length 262144 bytes
# Allumer le client tant que cette commande bloque le terminal
08:27:28.330676 IP (tos 0x0, ttl 44, id 26194, offset 0, flags [none], proto UDP (17), length 176)
X.Y.Z.W.5678 > A.B.C.D.5678: UDP, length 148
08:27:28.331160 IP (tos 0x0, ttl 64, id 58739, offset 0, flags [none], proto UDP (17), length 120)
A.B.C.D.5678 > X.Y.Z.W.5678: UDP, length 92
08:27:28.370997 IP (tos 0x0, ttl 44, id 26202, offset 0, flags [none], proto UDP (17), length 60)
X.Y.Z.W.5678 > A.B.C.D.5678: UDP, length 32
^C
Vérifier que les valeurs "tos" sont bien à 0 sur les 3 premiers paquets (=handshake, normalement tous les suivants étaient déjà à 0). Terminer la capture de paquets par Ctrl-C.
Pour les distributions de type Debian et normalement beaucoup d'autres, ce fichier là sera automatiquement chargé par systemd au démarrage du système si le paquet nftables est installé.