Qemu & expressvpn

Hello all.

I have recently set up a gaming VM to use on my Linux system. I can not complain at all, it works better than I expected when it comes to performance and all. One small issue however is that on my host machine I have been using ExpressVPN for a while through their own Linux app that you download from their website.

In general it is stable enough on the host machine even if it struggles to connect sometimes at first, but otherwise it works well.

For my gaming VM however, it is complete chaos. I use a WiFi connection so I have a NAT virtual network with a virtio device model and drivers installed. While I can indeed connect to the internet and navigate, there are a few major issues:

  • Internet speed when downloading is cut off vastly, at least ten times less what it should be
  • In general internet speed ends up throttling at some point, where downloads fell at below 1MB even if on another browser I was perfectly navigating
    • This has nothing to do with the source’s bandwidth.
  • It felt like DNS was screwed up or something, because if I was to navigate to reddit.com for example, the browser would stall for either a minute or until I hit refresh 1-2 times and it would then work perfectly. This would happen at random every 5-10 minutes.

What led me to believe my VPN was the cause, was that even if I went back, shutdown the VM and disconnected from my VPN, if I was to start the VM up again it would: still have the issues I listed above and also if I was to make a quick location check through the VM’s IP it would still display the country datacenter I was previously connected through the VPN to.

The only solution to this was rebooting properly without autoconnecting to the VPN.

What I did in the end was uninstall ExpressVPN and after a reboot, my VM experience has improved drastically so. All of the issues I listed above? Solved. VM uses nearly full speed, does not throttle and I can navigate without having to look at a blank page with a loading spinner unless I refresh aggressively.

However it does suck I can not apparently use my VPN on my host machine and so I am trying to look for a solution but after hours of searching I have been unable to find anything or anyone with a similar experience. While I have seen some small bits of general advice, they are so general that I haven’t bothered to try and mess with because it does not feel related at all.

I was thinking to try and setup the VPN connection through OpenVPN as I am using NetworkManager, but I am not sure whether that would change much.

I am posting mostly to share my experience so maybe someone else with my same issue will be able to find this one day, but also gather feedback and understand if there is anyone with a similar experience or an idea about how I can configure this ordeal not to give up on using a VPN on my host.

Thanks in advance.

I usually suggest people to find an openvpn setup for their VPN provider (or any other official repo VPN tool). That way it’s much easier to tune and moving across providers involve less changes.

The only solution to this was rebooting properly without autoconnecting to the VPN.

I have a suspicion expressvpn app does some weird shit with your host networking if these problems don’t away even if you “disconnect”. If that’s true, openvpn setup might help. You could also try different vpn providers. I have mullvad vpn, it simply just works, although I have a more common setup with pc connected with an ethernet cable

im not sure if i understand your issue but i use vpn too and this what i do

first connect to the vpn in the host

then do iwconfig in the terminal and locate your vpn interface device for me is (nordtun) im using nord/openvpn protocol

then create new virtual network in your vm manger and set the forward to your vpn interface witch is for me (nordtun) and delete default virtual network, now all my vm using my host vpn

if i set kill switch on in the host will apply to my VMs witch is cool

hope this help you if not gg

Yeah, whatever it does it messes up something either with the iptables or DNS stuff. The only other workaround I found was restarting NetworkManager service after disconnecting from the VPN whilst using the expressvpn dedicated app.

this is my xml of virtual network

<network>
<name>gg</name>
<uuid>00fc1cdd-c877-4ee5-864c-50e5264bad33</uuid>
<forward dev="nordtun" mode="nat">
<nat>
<port start="1024" end="65535"/>
</nat>
<interface dev="nordtun"/>
</forward>
<bridge name="virbr0" stp="on" delay="0"/>
<mac address="52:54:00:7a:f4:40"/>
<domain name="gg"/>
<ip address="192.168.100.1" netmask="255.255.255.0">
<dhcp>
<range start="192.168.100.128" end="192.168.100.254"/>
</dhcp>
</ip>
</network>

I might give that a shot, thanks!