How to Install Transmission on Fedora 44

Install Transmission on Fedora 44 Linux using DNF or Flatpak. Covers GTK, Qt, CLI, daemon setup, web UI access, updates, and cleanup steps.

Last updatedAuthorJoshua JamesRead time7 minGuide typeFedora

Fedora splits Transmission into desktop, terminal, and daemon packages, so the right install command depends on whether you want a GTK window, a Qt desktop build, one-off CLI downloads, or a browser-managed background service. If you want to install Transmission on Fedora, the default repositories already carry those roles without adding a third-party RPM source.

Flathub also ships the desktop app for readers who prefer Flatpak-managed updates or use a Flatpak-first Fedora desktop. The Fedora RPM packages remain the cleanest default on mutable Workstation, Server, and minimal installs because they also cover CLI and daemon workflows.

Install Transmission on Fedora

Fedora does not need a third-party repository for Transmission. The default packages cover the GTK client, the Qt build, the CLI tools, and the daemon, so the main choice is which interface you want to run.

The DNF package methods below target mutable Fedora Workstation, Server, and minimal installs. On Fedora Atomic desktops, use the Flatpak desktop method unless you deliberately manage host packages with rpm-ostree.

MethodPackage or App IDUpdate behaviorBest fit
Fedora GTK buildtransmission-gtkDNF-managed updatesGNOME and other GTK desktops
Fedora Qt buildtransmission-qtDNF-managed updatesKDE Plasma and other Qt desktops
Fedora CLI toolstransmission-cliDNF-managed updatesOne-off terminal downloads and torrent inspection
Fedora daemontransmission-daemonDNF-managed updatesHeadless systems and web-based control
Flathub desktop buildcom.transmissionbt.TransmissionFlatpak-managed updatesFedora Atomic desktops and Flatpak-first users

Most desktop users should start with transmission-gtk. Fedora’s transmission package is a GTK metapackage, so the explicit package names below help you avoid installing the wrong interface. Use transmission-daemon when the client needs to stay running in the background, and pick Flathub when you specifically want the Flatpak build.

Update Fedora Before Installing Transmission

Refresh package metadata and apply any pending Fedora updates first:

sudo dnf upgrade --refresh

These commands use sudo for package management, services, and firewall changes. If your account does not have sudo access yet, follow the guide to add a user to sudoers on Fedora before continuing.

Install Transmission GTK on Fedora

The GTK build is the default choice for Fedora Workstation and other GTK-based desktops. The package installs a launcher named Transmission in Activities.

sudo dnf install transmission-gtk -y

Verify the GTK client command is available:

command -v transmission-gtk
/usr/bin/transmission-gtk

Install Transmission Qt on Fedora

The Qt build fits better on KDE Plasma and other Qt desktops. Fedora exposes this launcher as Transmission (Qt) in Activities.

sudo dnf install transmission-qt -y

Verify the Qt client command is available:

command -v transmission-qt
/usr/bin/transmission-qt

Install Transmission CLI Tools on Fedora

The CLI package is useful when you want to inspect a torrent file, kick off a one-off download, or work entirely from a shell without opening the desktop client. Unlike transmission-daemon, it runs in the foreground and exits when that download session ends.

sudo dnf install transmission-cli -y

Verify that one of the CLI tools is available:

command -v transmission-show
/usr/bin/transmission-show

The same package also gives you transmission-cli, which can pull from a torrent file or magnet link directly from the terminal:

transmission-cli ~/Downloads/example.torrent -w ~/Downloads
transmission-cli "magnet:?xt=urn:btih:..." -w ~/Downloads

Install Transmission from Flathub on Fedora

Use the Flathub build when you want the desktop client through Flatpak instead of Fedora RPM packages.

Fedora Workstation includes Flatpak by default. On Server or minimal installs, run sudo dnf install flatpak first. The commands below keep sudo because Flathub is being added at system scope.

Flathub currently lists the Transmission app as unverified and grants it broad host filesystem access, so choose this method for Flatpak packaging and update behavior rather than stronger isolation.

Add the Flathub remote if it is not configured yet:

sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

Verify that the Flathub remote is listed at system scope:

flatpak remotes --system --columns=name | grep -Fx flathub
flathub

Install the Flathub build of Transmission:

sudo flatpak install flathub com.transmissionbt.Transmission

Verify that the system Flatpak install comes from Flathub:

flatpak info --system --show-origin com.transmissionbt.Transmission
flathub

Launch Transmission on Fedora

After installation, Fedora can launch Transmission either from Activities or from the terminal.

Launch Transmission from Activities

Search for Transmission in Activities to open the GTK client or the Flatpak build. If you installed the Qt package, Activities also shows a separate launcher named Transmission (Qt).

Launch Transmission from the Terminal

Use the command that matches the build you installed:

transmission-gtk &
transmission-qt &
flatpak run com.transmissionbt.Transmission &

The trailing ampersand keeps your shell prompt free after the app opens. The daemon setup below is separate because transmission-daemon runs as a system service rather than as a desktop window.

Install and Configure Transmission Daemon on Fedora

Use transmission-daemon when Transmission needs to keep running after you close your terminal or when you want the built-in web interface for remote control.

Before opening the web interface to your LAN, turn on RPC authentication and restrict the RPC whitelist to trusted client addresses. The daemon can run locally without these changes, but network access needs an explicit password and address boundary.

Install and Start Transmission Daemon

The daemon package creates a dedicated transmission system user and stores its working files under /var/lib/transmission.

sudo dnf install transmission-daemon -y
sudo systemctl enable --now transmission-daemon

Verify that the service is active:

systemctl is-active transmission-daemon
active

Create Download Directories for Transmission Daemon

Create the download directories before you change the daemon settings so the transmission user already owns them. The example keeps downloads under /var/lib/transmission, the daemon package’s Fedora state directory.

sudo install -d -o transmission -g transmission /var/lib/transmission /var/lib/transmission/Downloads /var/lib/transmission/Incomplete

Verify the ownership before continuing:

stat -c '%U %G %n' /var/lib/transmission /var/lib/transmission/Downloads /var/lib/transmission/Incomplete
transmission transmission /var/lib/transmission
transmission transmission /var/lib/transmission/Downloads
transmission transmission /var/lib/transmission/Incomplete

Edit Transmission Daemon Settings

Stop the daemon before editing settings.json. If you leave the service running, it can overwrite your changes when it exits.

sudo systemctl stop transmission-daemon
sudo nano /var/lib/transmission/.config/transmission-daemon/settings.json

Update the download paths, enable RPC authentication, and allow your LAN in the whitelist:

"download-dir": "/var/lib/transmission/Downloads",
"incomplete-dir": "/var/lib/transmission/Incomplete",
"incomplete-dir-enabled": true,
"rpc-authentication-required": true,
"rpc-username": "fedora",
"rpc-password": "choose-a-strong-password",
"rpc-whitelist": "127.0.0.1,::1,192.168.1.*",
"rpc-whitelist-enabled": true,

Replace 192.168.1.* with your own LAN range. Transmission rewrites rpc-password into a hash the next time the daemon starts, so seeing a long brace-prefixed value afterward is normal.

Restart Transmission Daemon and Verify the Web UI

Start the service again after saving the file:

sudo systemctl start transmission-daemon

Verify that the web interface answers with HTTP 200 when you use the credentials you just set. The curl command in Linux is useful here because it can return the HTTP status without opening a browser:

curl -s -u 'fedora:your-password' -o /dev/null -w "%{http_code}\n" http://127.0.0.1:9091/transmission/web/
200

Open the Transmission Web UI on Fedora

Replace your-password with the RPC password you set in settings.json. In a browser, open http://localhost:9091/transmission/web/ on the same machine or http://YOUR-FEDORA-IP:9091/transmission/web/ from another system on your LAN.

Open Firewalld Ports for Transmission Daemon

Open the web interface and peer ports only if other systems need to reach this host. If you still need to set up the firewall service itself, follow the guide to install firewalld on Fedora first.

Check the firewalld zones first. Use the zone that contains the network interface clients will reach; on many Fedora systems that is the default zone, but custom installs can differ.

sudo firewall-cmd --get-default-zone
sudo firewall-cmd --get-active-zones

Set the zone variable, then add the web interface and peer ports. Do not open port 9091 on an untrusted network; keep the RPC whitelist and password aligned with the systems that should control the daemon.

If --get-active-zones shows the client-facing interface in a different zone, replace the assignment with that zone name before adding, querying, or removing the rules.

firewall_zone=$(sudo firewall-cmd --get-default-zone)
sudo firewall-cmd --permanent --zone="$firewall_zone" --add-port=9091/tcp
sudo firewall-cmd --permanent --zone="$firewall_zone" --add-port=51413/tcp
sudo firewall-cmd --permanent --zone="$firewall_zone" --add-port=51413/udp
sudo firewall-cmd --reload

Verify that the permanent rules are present:

firewall_zone=$(sudo firewall-cmd --get-default-zone)
sudo firewall-cmd --permanent --zone="$firewall_zone" --query-port=9091/tcp
sudo firewall-cmd --permanent --zone="$firewall_zone" --query-port=51413/tcp
sudo firewall-cmd --permanent --zone="$firewall_zone" --query-port=51413/udp
yes
yes
yes

To close these ports later, remove the same permanent rules and reload firewalld:

firewall_zone=$(sudo firewall-cmd --get-default-zone)
sudo firewall-cmd --permanent --zone="$firewall_zone" --remove-port=9091/tcp
sudo firewall-cmd --permanent --zone="$firewall_zone" --remove-port=51413/tcp
sudo firewall-cmd --permanent --zone="$firewall_zone" --remove-port=51413/udp
sudo firewall-cmd --reload

Control Transmission Daemon with transmission-remote

The daemon install also pulls in transmission-common, which includes transmission-remote for terminal-side management.

transmission-remote 127.0.0.1:9091 -n 'fedora:your-password' -l
    ID    Done       Have  ETA              Up      Down  Ratio  Status       Name
Sum:                 None                  0.0       0.0

You can add either a torrent file or a magnet link the same way:

transmission-remote 127.0.0.1:9091 -n 'fedora:your-password' -a ~/Downloads/example.torrent
transmission-remote 127.0.0.1:9091 -n 'fedora:your-password' -a "magnet:?xt=urn:btih:..."

Update Transmission on Fedora

Fedora RPM packages update through DNF, while the Flathub build updates through Flatpak.

Update Fedora Packages for Transmission

sudo dnf upgrade --refresh

Update the Transmission Flatpak

sudo flatpak update com.transmissionbt.Transmission

Troubleshoot Transmission on Fedora

Fix Transmission Web UI 403 Forbidden on Fedora

If the web interface opens locally but returns 403 Forbidden from another machine, the requesting IP is not inside rpc-whitelist.

The error looks like this:

curl -s http://YOUR-FEDORA-IP:9091/transmission/web/
<h1>403: Forbidden</h1>

Check the current whitelist values first:

sudo grep -E 'rpc-whitelist|rpc-whitelist-enabled' /var/lib/transmission/.config/transmission-daemon/settings.json
"rpc-whitelist": "127.0.0.1,::1",
"rpc-whitelist-enabled": true,

Add your LAN range to rpc-whitelist, then start the daemon again:

sudo systemctl stop transmission-daemon
sudo nano /var/lib/transmission/.config/transmission-daemon/settings.json
sudo systemctl start transmission-daemon

After the whitelist includes the client subnet, verify remote access with the credentials you configured:

curl -s -u 'fedora:your-password' -o /dev/null -w "%{http_code}\n" http://YOUR-FEDORA-IP:9091/transmission/web/
200

Fix Transmission Web UI 401 Unauthorized on Fedora

If the daemon answers but refuses the login, the credentials in settings.json no longer match what you are sending.

An unauthenticated request returning 401 only means RPC authentication is enabled. To confirm a credential mismatch, test the username and password that are failing:

curl -s -u 'fedora:wrong-password' -o /dev/null -w "%{http_code}\n" http://127.0.0.1:9091/transmission/web/
401

Confirm that RPC authentication is enabled and which username is stored:

sudo grep -E 'rpc-authentication-required|rpc-username' /var/lib/transmission/.config/transmission-daemon/settings.json
"rpc-authentication-required": true,
"rpc-username": "fedora",

Reset the username or password, then start the daemon again:

sudo systemctl stop transmission-daemon
sudo nano /var/lib/transmission/.config/transmission-daemon/settings.json
sudo systemctl start transmission-daemon

Transmission hashes the new password when it starts, but the login should succeed immediately afterward:

curl -s -u 'fedora:your-password' -o /dev/null -w "%{http_code}\n" http://127.0.0.1:9091/transmission/web/
200

Remove Transmission from Fedora

Use the removal path that matches the method you installed.

Remove Fedora Packages for Transmission

If you installed Fedora RPM packages, build the removal list from the packages that are actually installed. This avoids failing on variants you did not install while still removing the shared transmission-common package when no Transmission package needs it.

mapfile -t transmission_packages < <(rpm -qa --qf '%{NAME}\n' 'transmission*' | sort -u)
if ((${#transmission_packages[@]})); then
    sudo dnf remove "${transmission_packages[@]}"
else
    echo "No Fedora Transmission packages are installed."
fi

Verify that the Fedora packages are gone:

rpm -qa 'transmission*' | grep . || echo "No Fedora Transmission packages are installed."
No Fedora Transmission packages are installed.

Remove the Transmission Flatpak

Remove the system-wide Flatpak app first, then clear unused runtimes if Flatpak reports any:

sudo flatpak uninstall com.transmissionbt.Transmission
sudo flatpak uninstall --unused

Verify that the Flatpak app is no longer installed:

flatpak list --system --app --columns=application | grep -Fx com.transmissionbt.Transmission || echo "NOT_INSTALLED"
NOT_INSTALLED

Delete Remaining Transmission Data

The following commands permanently delete Fedora desktop settings, daemon state, and Flatpak app data for the current account. Back up anything you want to keep first, for example with sudo cp -a /var/lib/transmission ~/transmission-backup-daemon if you need to preserve the daemon queue and session files.

Removing the packages and Flatpak app can still leave these paths behind, so clean them up manually if you want a full reset:

rm -rf ~/.config/transmission
rm -rf ~/.var/app/com.transmissionbt.Transmission
sudo rm -rf /var/lib/transmission

Verify that the remaining data directories are gone:

test -d ~/.config/transmission && echo present || echo missing
test -d ~/.var/app/com.transmissionbt.Transmission && echo present || echo missing
sudo test -d /var/lib/transmission && echo present || echo missing
missing
missing
missing

Conclusion

Transmission is installed on Fedora as the interface that fits your workflow: GTK or Qt for desktop use, CLI tools for one-off terminal work, Flatpak for a Flathub-managed desktop app, or the daemon for web-based background transfers. Keep RPC authentication, the whitelist, and firewalld rules aligned before exposing the daemon beyond the local machine.

Share this guide

Help another Linux user troubleshoot faster

Share this guide with someone troubleshooting Linux systems or saving it for later.

Follow LinuxCapable

Want more LinuxCapable guides in Google?

Add LinuxCapable as a preferred source so Google can show more of our fresh Linux tutorials in Top Stories and From your sources when relevant.

Add LinuxCapable as a preferred source on Google
Search LinuxCapable

Need another guide?

Search LinuxCapable for package installs, commands, troubleshooting, and follow-up guides related to what you just read.

Found this guide useful?

Support LinuxCapable to keep tutorials free and up to date.

Buy me a coffeeBuy me a coffee
Before commenting, please review our Comments Policy.
Formatting tips for your comment

You can use basic HTML to format your comment. Useful tags currently allowed in published comments:

You type Result
<code>command</code> command
<strong>bold</strong> bold
<em>italic</em> italic
<blockquote>quote</blockquote> quote block

Got a Question or Feedback?

We read and reply to every comment - let us know how we can help or improve this guide.

Verify before posting: