mullvad / mullvadvpn-app

The Mullvad VPN client app for desktop and mobile
https://mullvad.net/
GNU General Public License v3.0
5.08k stars 338 forks source link

"No internet access" in taskbar and that broke split tunneling apps when switching server #3713

Open yur1xpp opened 2 years ago

yur1xpp commented 2 years ago

Issue report

Operating system: Windows 10 21H2

App version: 2022.2

Issue description

"No internet access" in taskbar status when VPN connected or switching servers. In reality, VPN is connected and has internet access and I can surf the web just fine. But this bothers me because there are apps that are in split tunneling, and they "thought" that they have no internet connection and it won't work (Spotify). Mullvad configured to use Wireguard protocol. However I notice that sometimes if you disable and re-enable the network adapter then reboot computer, it revert to the expected state (shows has internet connection), but once you starts changing the server again, it come back. image

faern commented 2 years ago

Thanks for reporting this. We are semi-aware of this issue. It pops up from time to time. We have tried mitigations earlier to explain to Windows that the tunnel has internet etc. We'll look at it.

yur1xpp commented 2 years ago

Do you guys have any temporary fix for this at the this moment that doesn't requires a reboot? Perhaps a cli command or such? I'm switching servers a lot so I'll take any workaround that works.

LinuxOnTheDesktop commented 2 years ago

Cf. #2877?

yur1xpp commented 2 years ago

Reconnection doesn't works for me sigh

xerta555 commented 2 years ago

I get this issue this morning, i just had to wait some seconds (arround 5-10 seconds) and my network icon become normal.

It's not impossible that this "issue" come from Windows component(s) interface(s) or from a KB..

My logfile: 11e23d2e-e93b-4492-9143-3e9fde53d034.log

dlon commented 2 years ago

@yur1xpp Are NLA/NCSI probes enabled on your machine? It might be the case that some probe is failing while the tunnel is being set up. But it should retry after a while even if that's the case.

LinuxOnTheDesktop commented 2 years ago

I find that an ad hoc fix for this problem - or only for something like this problem? I lose track - is to use services.msc to restart the MullvadVPN service.

yur1xpp commented 2 years ago

Restarting the Mullvad service did indeed temporary fixed it. But I'm not sure if that will cause an IP leak? Kill switch is on, but I'm not very clear on the technicality. Would love if someone can explain that bit.

dlon commented 2 years ago

In general, you cannot assume that restarting the service won't leak anything unless "always require VPN" is enabled.

Removing and adding some routes should trigger a probe as well. Run this in PowerShell (as admin):

Remove-NetRoute -Destination "0.0.0.0/1" -InterfaceAlias Mullvad -Confirm:$false
Remove-NetRoute -Destination "128.0.0.0/1" -InterfaceAlias Mullvad -Confirm:$false
Sleep 1
New-NetRoute -Destination "0.0.0.0/1" -InterfaceAlias Mullvad -NextHop 10.64.0.1 -RouteMetric 1 -Confirm:$false
New-NetRoute -Destination "128.0.0.0/1" -InterfaceAlias Mullvad -NextHop 10.64.0.1 -RouteMetric 1 -Confirm:$false

This assumes you're not using custom DNS.

LinuxOnTheDesktop commented 2 years ago

Neither workaround - the restarting of the service, and the 'NetRoute' one - worked for me, at least not when automated via Powershell and Task Scheduler. (Each did work when run manually.) However, the latest beta (2022.3-beta3) seems to have fixed the problem (such that on awaking the PC needs no workaround).

dlon commented 2 years ago

If this issue persists, here is a test build that hopefully should work around the broken connectivity check: https://releases.mullvad.net/builds/2022.3-beta3-dev-8752a8+test-early-dns-build/MullvadVPN-2022.3-beta3-dev-8752a8+test-early-dns-build.exe

In order for it to work, you may have to disable all of the DNS-based blocking features (adblocking, tracker blocking, etc.) as well as custom DNS.

I can't reproduce the problem exactly, but the test build does fix the issue of temporarily ending up with "no internet access".

yur1xpp commented 2 years ago

I'm still experiencing this even on 2022.3 release build.

dlon commented 2 years ago

@yur1xpp: Good to know. Have you tried the test build or the delete/add route workaround mentioned above?

yur1xpp commented 2 years ago

Update: 2022.4 still have the same issue

@dlon yeah I did tried the method, it doesn't works for me.

yur1xpp commented 2 years ago

Having tried 2022.4 for few days, this is the worst version where the issue occur every few minutes, occurs without even the change of server.

LinuxOnTheDesktop commented 2 years ago

Would someone tell me the identity of the file(s) that contain(s) the code that handles split-tunnelling, on Windows and (if there is separate code for this) on Wireguard? I've reached the level of frustration where I'm willing to try to debug the code myself, even though I don't (presently) know the Rust programming language.

yur1xpp commented 2 years ago

I have no idea but I'm happy that someone actually trying to debug this, it's been 3 months since reported and it's still persisting, to say that I'm freaking annoyed is understatement.

LinuxOnTheDesktop commented 2 years ago

@yur1xpp: don't get your hopes up. For: I am merely a user, and not much of a programmer; and no-one has given me the information for which I asked.

Nalci commented 2 years ago

Hello!

I'm new to mullvad and I have the same problem. I have the latest version installed (2022.4)

I tried to restart the connection, restart the app, change the location, changing from 5 GHz frequency to 2.4 GHz but nothing helped. Sometimes it works but that's pretty much luck. I've also now tried the suggestions above (deactivate and reactivate the network adapter, the PowerShell command) but unfortunately it didn't work either.

It's really annoying since Spotify for example stops working after some time and I have to use the website for music streaming.