This seems like something that would be simple, but I spent a long time trying to figure it out. I figured I’d write a blog post about it in case anyone else has a similar desire.
On BSD you use FIBs to declare process specific routing tables, on Linux you use firewall marks to do the same, then just route all trafik through the vpn uplink and deny any other.
i found it very easy to grab a couple of pre-built containers… im using deluge and gluetun … im sure theres a transmission container out there also.
setup your auth info in gluetun, point your deluge/trans container at gluetun for its network and youre done.
I don’t know why, but I’ve always shied away from using docker. This does seem like an area where it would be particularly useful.
Not at all. It allows you to install and use whole suites of tools and libraries without any pollution of or dependencies on your host system. It also allows you to define the whole setup in a file so it’s trivial to recreate on another machine
I use a container for transmission and openvpn: https://hub.docker.com/r/haugene/transmission-openvpn/
Thank you for taking the time to put this together and post it.
Gluetun is the way. Get a transmission docker container, set up a gluetun docker container, set the gluetun container as the network for the transmission container.
Viola, you have a perfectly working VPN with a kill switch.