meile-gui icon indicating copy to clipboard operation
meile-gui copied to clipboard

[1 XMR BOUNTY] FEATURE: Add support for Split Tunneling

Open mirrorsshutter opened this issue 1 year ago • 3 comments

Add support for Split Tunneling in cases where only part of the traffic requires a VPN connection.

mirrorsshutter avatar Jan 15 '25 16:01 mirrorsshutter

This is something I will add a bounty for. I am not interested in doing the work myself. Also, this would be most appropriate for Windows and OS X as apps are registered within the system whereas Linux this would be very difficult to implement.

MathNodes avatar Jan 21 '25 07:01 MathNodes

Hello, I would like to work on this

BenraouaneSoufiane avatar Jan 26 '25 17:01 BenraouaneSoufiane

Hello, I would like to work on this

Wonderful! My suggestion would be to focus solely on Windows for the time being. If you are successful merging a PR for the 2.0-Windows branch, I can offer an additional bounty for OS X.

Getting started, clone the repo and create a new branch from the 2.0-Windows branch. This will be your split tunneling branch you will use to submit a pull request. I would focus on pulling a list of available Windows apps via windows API and somehow providing a dialog where users can whitelist the app to not be used in the tunnel. My suggestion would be to include this in the settings screen under screens.py

Unfortunately, I have no idea on Windows API via python so you are on your own. Once the apps are white listed you need to figure out a way so they aren't sent through the tunnel. The tunnel interface varies for wireguard and v2ray protocols. In the case of WG the interface is wg99. But, for v2ray it uses a random tun### interface. You need to figure out how to pull the correct tunnel interface.

Feel free to ask any questions about the code.

freQniK avatar Jan 27 '25 20:01 freQniK