Extremely slow internet speeds with OpenVPN

Hello everyone, I am a newbie trying my hands on OpenWRT with my Etisalat provided DLink DIR 853 A3 router.
Background: I wanted to use ProtonVPN on my router and therefore had flashed it to OpenWRT 21.02.0-rc2 and then upgraded to openwrt-23.05.0-rc3-ramips-mt7621-dlink_dir-853-a3-squashfs-sysupgrade.
Now after setting up a network with the same, I am getting good speed as provided by ISP, 240-250 Mbps.

Current situation: I have set up Proton VPN (OpenVPN) on the same and now I am getting very slow internet speed around 15Mbps. I have contacted Proton and they say that "The downside to OpenVPN is that in its current architecture, it is not scalable. It runs as a monolithic process and cannot run multi-threaded.

This means that if you have a beefy processor with 8 cores and each of the core has 8 threads, OpenVPN will use only a single thread in one of the available cores.

Regarding routers - they do not have powerful CPUs, thus encrypting and decrypting OpenVPN traffic is a real challenge for them. For that reason, the speed can drop by a large amount"

Can anyone guide me if this is true and has anyone have any similar experience on this?

Thanks in advance.

Yes, OpenVPN is single-threaded, so in essence (without going into technical details) it's correct. You could always try WireGuard instead (which ProtonVPN supports) which is way faster than OpenVPN, unless there's a specific reason you want to use OpenVPN.

Run htop in cli, to see the CPU load, in real time.

1 Like

Thanks. Any specific guide which I can follow? Looks like there isn't any from Proton themselves

If they support OpenVPN DCO, it will be performing a lot better, however AFAIK there is no VPN provider doing this at the moment.

I haven't set it up myself but https://www.ivpn.net/setup/router/openwrt-wireguard/ looks decent. https://support.surfshark.com/hc/en-us/articles/7091559595666-How-to-set-up-WireGuard-on-OpenWRT-router has also been linked in the forum previously. Note that the Surfshark guide seems to be done against 22.03 (indicated by the existence of the luci-app-wireguard which has since been removed as a separate package) so you may need to adapt some things if following that.