-
Notifications
You must be signed in to change notification settings - Fork 360
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Split tunneling based on domain names/IP addresses #2071
Comments
Before starting the split tunneling work we evaluated doing it per IP/IP range or per application. We decided that per application was the most useful of the two for the majority of users. So we went with that. There are currently no plans for other types of split tunneling. That does not mean it will never exist, just that we are currently not planning for it or have a timeline for it. |
Can this be reopened if you think this has a chance to be implemented in the future? Many other VPN software including the generic OpenVPN client offer the ability to do this and it would be beneficial to users that have no choice but to disable the VPN for certain domain names/IP addresses. |
Jorik392, if you are thinking of websites like legitimate streaming services that do not permit access via a VPN/proxy, you could always have a dedicate browser for non-VPN traffic. Chrome, Firefox, and Edge all have stable and nightly releases. That's 6 available browsers that doesn't include alpha and beta releases. I'm not sure about Safari; and then there are other browsers but that depends on how you feel about them. For me, i prefer internet traffic to be routed through the VPN by default and specific internet traffic to be routed outside of the VPN by making specific rules - a white list. Looking at Openvpn's documents, it appears to function the opposite way. Internet traffic is routed outside of the VPN by default and you create rules for traffic to be routed through it. Remember, Openvpn is meant to provide a user access to a private network, not obfuscate their activity. An issue i see with split tunneling via domain name or IP address is that most websites pull resources from several servers, therefore for one website you will have to create several rules. Every server can be accessed via several IP addresses. What happens when a server changes its IP addresses or resolved name - a user will think they're protected when they are not. It sounds like a disaster waiting to happen. |
Split tunneling for IP addresses also has other use cases and is implemented in other VPN clients like PIAs. Two use cases I have right now:
|
You should be able to reach Depending on your operating system you can always set up your own custom split tunneling with the firewall/routing table. If you use Linux, see this guide for some tips and tricks to exclude whatever types of packets: https://mullvad.net/en/help/split-tunneling-with-linux-advanced/ |
Another good purpose of this would be w/ IP locked services, which don't let you connect from a different IP address. Since Mullvad won't let you have dedicated IPs, it's pretty much just constantly requesting to change your IP address or not using a VPN at all, at least that's how it went in my case |
Is this possible to be implemented? It would be really handy. Some private websites don't allow you to use a VPN to browse them (and ban when you do so), but allow it to be used with connections through other apps. Having an IP/domain whitelist would be very handy in these use cases, because otherwise you have to exclude the browser entirely instead of only the specific site you need excluded (and whatever connections it uses). |
@Drakonas The current recommendation is to run multiple browsers. One that is excluded and one that is not. Then you can do your non-VPN stuff in the excluded one. |
It would be great if this nftables based method would be integrated into the Linux version: https://github.com/relativisticelectron/python-mullvad-tailscale |
Implementing this could solve the voice chat issues people have in games like valorant and overwatch? |
Additionally would resolve common issues people might have with work VPN/secure virtual desktops people might use for remote work. |
Just trying out Mullvad for the first time, this missing feature is an immediate headache:
|
That's unfortunate :( For compatibility with separate VPN-isch products I mainly recommend contacting our support, since this is a feature request. And/or maybe they (support) know of a workaround or similar.
Sounds like you run Mullvad on some router or something? Or how is IP split tunneling solving the issue on five devices with just one split? If you run Mullvad separately on all five devices you still need to set up the splitting five times over. I'd argue that this is not that much less work than installing an extra browser on five devices. The current stance is that for splitting specific websites we recommend a separate browser. |
Yeah I already did. They refused to help.
No...? Just using it on my PC.
...?? It's not.
The one-time setup is similar, yes. But that's just one-time. Now on an ongoing basis, you need to have twice as many browsers installed everywhere. Twice as many browsers using up storage on each OS, twice as many browsers needing to be kept up to date, needing to quit & launch another separate process rather than simply alt+T a new tab, and so on and so on. Having to remember on an ongoing basis which sites you need to use through a separate browser. It's far, far more user friction & a far worse user experience on an ongoing basis vs just doing the up-front setup & then everything working seamlessly & the same: getting to use one browser for everything like normal. |
There are multiple problems with splitting the IP for example.com and then just hoping it works well.
All of the above combined makes it really hard to reason about behavior, security and privacy. Thus we don't really recommend tunnel splitting based on IP, but rather per application. Our own Firefox browser extension, and our own browser supports per-domain exit servers. Meaning you can custom route some websites to a different VPN server. This is sort of what you want! Except that you can't tell it to route anything outside the tunnel altogether. Having an option to route things outside the tunnel altogether would not be technically impossible. However, it would require some deeper integration between our app and our browser extension. This has currently not been prioritized. |
Understood, thanks for that context. Honestly at this point my real blocker is the Twingate thing anyway, since the website thing at least does have a workaround. For Twingate, I simply have to disconnect from Mullvad entirely - otherwise I'm unable to work. The result has been that...I'm pretty much never able to use Mullvad at all. |
Same as above, I need to allow certain network to go through other vpn for work, mullvad is very aggressive and blocks everything. |
For what it's worth, I ultimately gave up on using Mullvad. Since my work VPN is non-optional I couldn't really connect to Mullvad the vast majority of the time. After lots of reading I'm certain there's a way to for them to work together, but both ends basically just said I had to ask the other, and I didn't have further time to dedicate to trying to figure it out myself. So I had to drop Mullvad :( |
Based on #2071 (comment) and https://mullvad.net/en/help/split-tunneling-with-linux-advanced but for macos I did Now it works; route was already present from other vpn, only thing blocking it was mullvad's PF rules. Had to stuff it under It would be great if mullvad's default PF ruleset also had an empty table, like Then the whole custom routing on mac os would be a simple:
Much better than figuring out all the mess apple did with PF and anchors and whatnot. |
Split tunneling is currently limited to specific applications.
It will be useful to also have the ability to do this for specific domain names/IP addresses so traffic to them will not go through the VPN.
The text was updated successfully, but these errors were encountered: