Using transmission-daemon on a Raspberry Pi with Respbian, I always get 403 Forbiden when I try to visit RPi_IP:9091/transmission/ from another computer via local network.

My settings.json:

"rpc-authentication-required": false, 
"rpc-bind-address": "", 
"rpc-enabled": true, 
"rpc-port": 9091, 
"rpc-url": "/transmission/", 
"rpc-username": "pi", 
"rpc-whitelist": ",*.*.*.*", 
"rpc-whitelist-enabled": true,    /* not solved even I change this to true */

How to make the web UI work from non-localhost?


It it possible, that the transsmision can't find its config file. In that case reads it from other place than /etc/transsmision-daemon/. Try to run it in the foreground instead of daemonizing.

transmission-daemon -f

Then look from where transmission tries to read config file. It can be home directory of the user who runs transmission-daemon.

(...) [2016-08-13 16:18:00.906 UTC] Using settings from "/home/pi/.config/transmission-daemon" (...)

Stop transmission with killall transmission-daemon, then modify this file and run the daemon again.

Note: If it's the case of config file location, then you should check the CONFIG_DIR variable in /etc/default/transmission-daemon.


Stop the transmission-daemon by

killall transmission-daemon

Then set "rpc-whitelist-enabled" to false

Run the daemon and voila, you can access the web UI.

  • 2
    <sarsasm>Everything works fine, when You disable security.</sarcasm> – Tomasz Jakub Rup Sep 3 '16 at 12:08
  • 1
    Obviously a horrible permanent solution, but for debugging's sake, it lets the administrator determine if the RPC whitelist is the problem or not. – Jean-Marc Liotier Mar 31 '19 at 15:47

After torture ... :)
I found that in linux CentOS 7.5 there is other file with settings:


No matter what settings you make in


Transmission creates other settings.json file (with default settings) and eventually when you try to open the Transmission webpage you get the Forbidden message.


killall transmission-daemon
rm /var/lib/transmission/.config/transmission-daemon/settings.json
cp /root/.config/transmission-daemon/settings.json /var/lib/transmission/.config/transmission-daemon/settings.json
chmod 0600 /var/lib/transmission/.config/transmission-daemon/settings.json

In this way we give only read permission for Transmission default settings. Now lets start service:

systemctl start  transmission-daemon.service
systemctl enable transmission-daemon.service

I tested it as root user, but it is possible to run this service as any user you want.


For the benefit of newer readers, I've also discovered another way I didn't see to bork this: There's TWO whitelist fields in settings.json. Hopefully that saves you some time.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.