this post was submitted on 12 Nov 2023
107 points (99.1% liked)

Piracy: ꜱᴀɪʟ ᴛʜᴇ ʜɪɢʜ ꜱᴇᴀꜱ

54500 readers
496 users here now

⚓ Dedicated to the discussion of digital piracy, including ethical problems and legal advancements.

Rules • Full Version

1. Posts must be related to the discussion of digital piracy

2. Don't request invites, trade, sell, or self-promote

3. Don't request or link to specific pirated titles, including DMs

4. Don't submit low-quality posts, be entitled, or harass others



Loot, Pillage, & Plunder

📜 c/Piracy Wiki (Community Edition):


💰 Please help cover server costs.

Ko-Fi Liberapay
Ko-fi Liberapay

founded 1 year ago
MODERATORS
 

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.
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 18 points 1 year ago* (last edited 1 year 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.