Expected Behaviour:
OpenVPN and WireGuard setups on the same server Pi-Hole runs on give me a download speed on the client faster than like 4 KBs per second in the case of WireGuard on Ethernet on the LAN and 50-100 bytes in the case of OpenVPN
Actual Behaviour:
Both OpenVPN and WireGuard setups work, but they both give the abysmal and unusable speeds stated above
Hi all:
I am trying to follow this guide and this guide to be able to use my Pi-Hole for DNS outside of the LAN. I am a college student and will not be on the same network as the Pi-Hole next month, and as such I would like to set up a personal VPN to be able to at least route DNS through my Pi-Hole from abroad.
I started with the OpenVPN guide first. I installed and configured Access Server just as instructed. I can connect to the server fine, but the connection tops out at like 4 KBs per second at first contact and immediately drops off to like 50-100 bytes -- not kilobytes, but bytes -- over UDP. After trying again from scratch 2-3 times I gave up on OpenVPN and tried WireGuard. WireGuard works as well but only garners a mere 4 KBs per second on Ethernet with the client system sitting right next to the server.
I've read posts about these protocols being slow, but I would be very surprised to hear they are working as intended if they are this slow. I know there are a ton of variables in this scenario -- the server running Pi-Hole and OpenVPN/WireGuard is on Ethernet and gets 200 MB/s download/15-20 MB/s upload. I run Searx/xBrowserSync/Nextcloud/Vaultwarden and stream 1080p video through Jellyfin all on the same machine as Pi-Hole with no bandwidth issues whatsoever. Neither OpenVPN nor WireGuard are using up enough resources to seriously slow down the server, either; when connections are active both of them only add maybe 200 MBs of RAM usage to bring the server's total up to around 1.3 GB with 3 GBs to spare. I definitely am inclined to think this is a configuration issue with OpenVPN/WireGuard and not a hardware/bandwidth bottleneck.
Pi-Hole listens on all interfaces and works 110%. I know this is an OpenVPN/WireGuard problem, but since the guides were in the Pi-Hole docs I figured I'd ask around here before I look elsewhere.
Things I have tried (really all for OpenVPN as I didn't thoroughly test WireGuard after realizing I get the same speeds as OpenVPN):
Listening on UDP only -- this makes my iPhone XR unable to find the server. iOS will only locate the OpenVPN server if OpenVPN is configured to listen on TCP.
Commenting out push redirect-gateway def1
from OpenVPN -- same result/speeds
Checking for a firewall/port forwarding issue -- there are none that I can see
Pi-Hole and OpenVPN/WireGuard are both running on Ubuntu 20.04.3 on an HDD and with 4GB DDR3.
I don't have my OpenVPN configs anymore because I deleted them since it didn't work. Here's WireGuard wg0
currently:
[Interface]
Address = 10.100.0.1/24, fd08:4711::1/64
ListenPort = 2053 # I changed this from the guide's 47111 because I use Cloudflare and Cloudflare blocks all traffic except for traffic on a select 10 or so ports
PrivateKey = *private key*
[Peer]
PublicKey = *public key*
PresharedKey = *PSK*
AllowedIPs = 10.100.0.2/32, fd08:4711::2/128
Debug Token:
https://tricorder.pi-hole.net/CsOd3dzg/
I did see whilst generating this debug token that Pi-hole failed to resolve DNS on the WireGuard interface although DNS resolves fine on all other interfaces.