spyophobia / shadowsocks-gtk-rs

A desktop GUI frontend for shadowsocks-rust client implemented with gtk-rs.
GNU General Public License v3.0
56 stars 7 forks source link

Does this have the option to route all traffic through Shadowsocks? #1

Open kassemz opened 2 years ago

kassemz commented 2 years ago

Does this have the option to route all traffic through Shadowsocks? if not, would it be possible to add that feature?

spyophobia commented 2 years ago

This feature request is kind of beyond what I initially envisioned for this application but okay we can talk about it.

So the simple approach (which is not so simple) is to have an option to set the system proxy. However due to the decentralised nature of Linux, the method of setting system proxy is very much non-standard. Also the system proxy setting is just a hint - whether traffic actually goes through it is entirely at the whim of the specific application.

The other approach is to create a virtual tunnelling network interface (e.g. using a combination of NetworkManager and sslocal's tunnel mode), which is essentially equivalent to creating a VPN connection. This would guarantee that all traffic is routed through Shadowsocks, but would require a substantial amount of code addition. This is likely the option I will go with eventually.

That being said, be warned that this feature won't be immediately worked on just yet. There are other more important things (IMO) that need work first, e.g. a configuration creation&management GUI.