[GUIDE] How to setup linuxserver's transmission on Mullvad VPN [Transmission + Privoxyvpn + Mullvad]


Recommended Posts

How to setup linuxserver's Transmission on a VPN without using a different docker image with VPN support.

This guide assumes you have setup transmission already is only meant to get Mullvad VPN working with it.

 

 

Mullvad Account & Configuration

  1. Generate an account with Mullvad VPN: https://mullvad.net/en/account/#/
    Save the account number so you can access your account later on, you will not be able to recover this information later and there is no password.
    Make sure you make a payment else you will not be able to create port forwarding or generate config files in the coming steps.
    image.png.7fc547eb610a8a9b4a60ce647a162c46.png
  2. Generate config files: https://mullvad.net/en/account/#/wireguard-config/
    Select Linux, Click Generate Key, Select Country/City/Server and download the file.
    Unzip this file and save the files for later use.
    image.thumb.png.a3d3f78d58af27d521a6712c5d2f9538.png
  3. Create Port Forward: https://mullvad.net/en/account/#/ports
    Select the same city & key that you selected in step 2 and click Add Port.
    In this example, the port that was randomly generated was '55214'. We'll need this for transmission incoming port.
    You will not be able to select the port number to forward, a random one will be assigned to you! :(
    image.png.c766e562439f99b355d448165f052f2b.png

 

Privoxyvpn Configuration

  1. Install binhex-privoxyvpn
  2. Set a VPN User and Password (not sure this is really needed, but i set it anyway)
  3. Set Provider to 'custom'
    Set Client to 'wireguard'
    image.png.ab5e5eec7f1ebec185396f5bf9432609.png
  4. Set ENABLE_PRIVOXY to 'yes'
    image.png.6eda4757216aadbad6b49750dc655859.png
  5. Click on Add Another Path, Port, Var...
    image.png.0377e648a01358ae9e64e594fcec31a8.png
  6. We need to add the port that was genreated during the Mullvad setup. In our example it is '55214'. We need to add two of these, one for UDP and TCP.
    image.png.5c483dcb35c2e6810b1a5821d765825c.png
  7. Now we need to add the port for the transmission web/gui interface, which is 9091.
    image.png.251f3b1516a9af6e9c3f259e4c471fcd.png
  8. And we are done with configuration, click apply/done and let it install and start.
  9. Once Privoxyvpn started, its going to be complaining about not having a wireguard config (look at the log).
    image.png.9fe333f7779f88cffb1db3f1d944e503.png
    Once it complains about no wireguard config, stop Privoxyvpn if it hasn't already.
  10. Copy one of the conf files from the mullvad zip file you downloaded to '/mnt/user/appdata/binhex-privoxyvpn/wireguard' (see note below). Each config file is a different server if you selected "all servers" during config creation. Only copy one file. At a later date, if you want to switch servers, delete everything in the wireguard folder and copy a new config, reboot Privoxyvpn.

    ** Pick your favorite way to get access to the '/mnt/user/appdata/' folder. I like to share the folder so I can use windows networking to get access. I know this isn't the best way, but its how I do it. Some like to use binhex krusader app.
  11. Start Privoxyvpn and log into its console
    image.png.bc0b8ee41cf343af5aa723b9937bf6a1.png
  12. Type: curl ifconfig.io
    image.png.6a4c68a5d7645c327e97aa701cf694e5.png
    This will show you your WAN IP address, hopefully its showing the exit point of your mullvad VPN! Check your normal WAN by going to http://ifconfig.io/ in your normal web browser.
  13. All done with the Privoxyvpn configuration and if the WAN IP was the VPN exit point then you are good to go. Lets move on to configuring transmission.

 

 

Transmission Configuration

  1. Stop transmission and edit the docker
  2. Click advanced view
  3. Set Extra Parameters to '--net=container:binhex-privoxyvpn'
    Set Network Type to 'none'
    image.png.b979da2d1c0fc1f482317146a4eedcc8.png
  4. Set 'Host Port 2' to the port that was generated on the mullvad setup. In our example it was '55214'. I like to click edit here, and update the default value and description.. just my preference.
    image.png.8c9faf68fbf4e88598636d9ea6bb43ab.png
  5. Click apply and start transmission
  6. Open the console for transmission
    image.png.f3f0f0edca6477c5b4e3170b1aca687e.png
  7. Type: curl ifconfig.io
    image.png.b2f17adeca5fb680c309c60ecb3a0f58.png
    This should show the same IP of the VPN WAN exit node that we saw during step 12 of the Privoxyvpn setup.
  8. At this point every thing will be working. However, you may have noticed you don't have access to the web interface or transmission remote gui isn't connecting any more. Well read on friend, we'll get that straightened out.

 

Transmission Web GUI Access

  1. Transmission is now behind a proxy, to get access we also need to be behind the proxy.
  2. I am a primarily a chrome user. So for my case, I'm going to use Firefox to set it up as a permanent browser that is behind a VPN at all times. While my chrome is my normal un-VPN browser.
  3. Download and install Firefox: https://www.mozilla.org/
  4. Click the top right menu and goto 'Options'
    image.png.536c0c54d52ef75511b5583897f3fb1a.png
  5. Scroll all the way down to the bottom and click on 'Settings...' under 'Network Settings'.
  6. Enter your unraid's LAN IP address in 'HTTP Proxy' and check the box "Also use this proxy for FTP and HTTPS'
    image.thumb.png.3b3fe0008d7c56e54b94ad473036b96b.png
  7. Go to the 'Docker' page on your unraid server and look at the IP:9091 port mapping line. My example is 172.17.0.7:9091 which tells us that we can go to this port while on the VPN via: http://172.17.0.7:9091
    This will give us access to our transmission web gui.
    image.png.98d2da40031bc680973d06cbb0518662.png

 

Transmission Remote GUI Access

  1. If you have not heard of transmission remote gui, i highly recommend it. Its real nice for managing your transmission server. You can install it by going to: https://github.com/transmission-remote-gui/transgui/releases
  2. Lets start by editing our connection.
    image.png.08b6c07607f97b4990a039e7bdd01629.png
  3. Go to the 'Docker' page on your unraid server and look at the IP:9091 port mapping line. My example is 172.17.0.7:9091
    image.png.1aa5ace6252b3f291416facce49ed6b2.png
  4. Enter the IP and port from the previous step into transmission. In my example it was 172.17.0.7 & 9091
    image.png.09459acee3953e766568aa52031b5192.png
  5. Goto the 'Proxy' tab and enter your unraid server's ip address and port 8118 as well as the username/password if you provided it in the privoxyvpn setup step 2.
    image.png.4eb25f1602dacfd7148a9aa41ec5cdb6.png
  6. And thats it, should be working!

 

Edited by Antivanity
  • Like 1
  • Thanks 1
Link to comment
  • 3 weeks later...

Hey,
Just used this guide to setup transmission and I really appreciate the guide, worked great. 
Havn't gotten around to setting up remote gui for transmission yet so going to try that.
I use firefox as my default browser however and using the proxy as you described will make it so
I can't access my unraid GUI (I am assuming this is intended behavior). Is remote GUI the best way to go
or do you have any idea how to solve this differently?

  • Like 1
Link to comment
  • 2 months later...
  • 3 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.