I’m a long-time Transmission user but I just learned that VPN killswitches are a thing (how did it take me so long!?). I would like to try another client which has this feature in case I forget to launch my VPN client before opening Transmission. Does anybody have any recommendations? Deluge? QBittorrent? Or any others?

UPDATE: Thanks for the suggestions everyone! I decided to give qbittorrent a try and have been enjoying it so far.

I followed these steps to bind it to my VPN from on Linux:

  1. Pause torrents
  2. Connect VPN
  3. Open qBittorrent. Go to Preferences, and then Advanced tab
  4. Change network interface to tun0. If unsure, disconnect VPN and restart qBittorrent then repeat step 1 to see which interface appears.
  5. Restart qBittorrent
  6. Test it out on the official kubuntu torrent or your favourite distro from LinuxTracker.org. Turn your VPN on and off while verifying whether it pauses and resumes downloading.
  • TCB13@lemmy.world
    link
    fedilink
    English
    arrow-up
    18
    ·
    edit-2
    8 months ago

    You don’t need to switch to another client. Apparently Transmission can be set to bind to your VPN IP by editing settings.json:

    bind-address-ipv4: String (default = “0.0.0.0”) Where to listen for peer connections. When no valid IPv4 address is provided, Transmission will bind to “0.0.0.0”.

    bind-address-ipv6: String (default = “::”) Where to listen for peer connections. When no valid IPv6 address is provided, Transmission will try to bind to your default global IPv6 address. If that didn’t work, then Transmission will bind to “::”.

    If you set those with your VPN IP and the VPN is down then Transmission won’t be able to communicate with any peers.


    Another option, is to use systemd to restrict Transmission’s networking to your VPN IP. You can make an override of the default transmission daemon unit by using the following command:

    systemctl edit transmission-daemon.service
    

    Then type what you need to override:

    [Service]
    IPAddressDeny=any
    IPAddressAllow=10.0.0.1 # --> your VPN IP here
    

    Another systemd option, might be to restrict it to a single network interface:

    [Service]
    RestrictNetworkInterfaces=wg0 # --> your VPN interface
    

    Save the file and run systemctl daemon-reload followed by systemctl restart transmission-daemon.service and it should be applied.

    This will be safer than just doing bind-address-ipv4 and bind-address-ipv6.