Open your terminal and run the following commands to update your package list and install the rtl-sdr utilities: [1, 2, 3]
bash
sudo apt update
sudo apt install rtl-sdr -y
Use code with caution.
2. Configure Hardware Permissions & Blacklist Conflict Drivers
By default, Ubuntu will attempt to load the device as a DVB-T television tuner, which locks the hardware and prevents
rtl_tcp from accessing it. [1]Step 1: Blacklist the TV tuner driver
Run this single command to prevent the default Linux kernel module from claiming your SDR: [1]
Run this single command to prevent the default Linux kernel module from claiming your SDR: [1]
bash
echo "blacklist dvb_usb_rtl28xxu" | sudo tee /etc/modprobe.d/blacklist-dvb.conf
Use code with caution.
Step 2: Add udev rules for non-root access
Download the official hardware rules file so you don't have to run your streaming server as the root user: [1, 2]
Download the official hardware rules file so you don't have to run your streaming server as the root user: [1, 2]
bash
sudo wget -O /etc/udev/rules.d/rtl-sdr.rules https://raw.githubusercontent.com/rtlsdrblog/rtl-sdr-blog/refs/heads/master/rtl-sdr.rules
Use code with caution.
Step 3: Reboot your computer
Plug in your RTL-SDR USB dongle and restart your system to apply the blacklists and permission rules. [1, 2]
Plug in your RTL-SDR USB dongle and restart your system to apply the blacklists and permission rules. [1, 2]
3. Verify the Installation
bash
rtl_test
Use code with caution.
If successful, you will see your tuner type listed (e.g., E4000, R820T) and a message saying
Listening.... press Ctrl + C to exit the test. [1]4. How to Use
rtl_tcpThe
rtl_tcp command starts a local server that packages the raw I/Q radio data and streams it over your network via TCP/IP. [1]If you only need to stream to software running on the exact same Ubuntu machine (or via a WINE/VM environment), start the server on your local loopback address: [1]
bash
rtl_tcp -a 127.0.0.1
Use code with caution.
Network Streaming (Remote Access)
To stream the radio data across your local network so a phone, tablet, or another PC can connect to it, bind it to your Ubuntu machine's specific local IP address (or
0.0.0.0 to listen on all network cards): [1, 3]bash
rtl_tcp -a 0.0.0.0
Use code with caution.
- Default Port: The server listens on port 1234.
Customizing Settings: You can specify custom ports or sample rates using arguments. For example, to run on port 8080 at a lower sample rate to save network bandwidth:
bashrtl_tcp -a 0.0.0.0 -p 8080 -s 1024000Use code with caution.
Connecting a Client Application
Open your favorite SDR software on the client device (such as SDR++, Gnumeric/Gqrx, or SDR#). [1, 2]
- Change the source/driver type from "RTL-SDR (USB)" to RTL-SDR Spectrum Server (or rtl_tcp).
- Input your Ubuntu computer's network IP address and the designated port (e.g.,
192.168.1.50:1234). - Click Start / Play to begin streaming the radio spectrum across your network. [1, 2]
If you run into issues, tell me which RTL-SDR version model you own (e.g., V3, V4), or what client application you plan to stream to so I can help you troubleshoot the network connection.
- Ubuntu Driver Help for SDR : r/RTLSDR - Reddit
Nov 15, 2023 — What SDR do you have? sudo apt install rtl-sdr <-- this will install the driver for the cheap SDR's with these tuners Rafael Micro...
Reddit·r/RTLSDR - How to install Ubuntu 26.04 LTS - Resolute Raccoon
Apr 27, 2026 — so in this video I'm going to go through how to install the new version of Abuntu. which is Abuntu 26.04 Resolute Raccoon so I'm g...
7:05
YouTube·DevPush - Ubuntu Manpage: rtl_tcp - an I/Q spectrum server for RTL2832 based DVB-T receivers
The rtl_tcp command can be used to: * Run on a machine with an rtl-sdr supported device connected * Provide I/Q data to other appl...
Ubuntu Manpages
Show all
You said: running it on a remote ubuntu 26.04 machine
To reliably run
rtl_tcp on a remote Ubuntu 26.04 machine, you need to manage network access, handle firewall rules, and ensure the process keeps running after you close your SSH session.1. Bind to the Correct Interface
By default,
rtl_tcp listens on 127.0.0.1 (localhost), which blocks outside network connections. You must force it to listen on all interfaces so your remote client can reach it. [1]Run this command on the remote machine:
bash
rtl_tcp -a 0.0.0.0
Use code with caution.
Ubuntu 26.04 has the Uncomplicated Firewall active by default. If your client cannot connect, you must open the specific TCP port you are using (default is
1234). [1]Run these commands on the remote machine:
bash
# Allow the default port
sudo ufw allow 1234/tcp
# Reload firewall to apply changes
sudo ufw reload
Use code with caution.
3. Run in the Background (Persistent Session)
If you start
rtl_tcp normally over an SSH connection, the stream will instantly crash the moment you log out or lose your internet connection.Option A: Quick Backgrounding (Using Screen)
Install
screen to keep the process alive in a virtual terminal:bash
sudo apt install screen -y
Use code with caution.
Start a named screen session, run your command, and then safely disconnect:
bash
# 1. Start the screen session
screen -S sdr_server
# 2. Start rtl_tcp inside it
rtl_tcp -a 0.0.0.0
# 3. Detach from the session safely
# Press Ctrl + A, then press D
Use code with caution.
You can now close your SSH window. To check back on it later, log in via SSH and type
screen -r sdr_server. [1, 2]Option B: Automatic Startup (Systemd Service)
If you want
rtl_tcp to run automatically whenever the remote server boots up, create a system background service:bash
sudo nano /etc/systemd/system/rtltcp.service
Use code with caution.
Paste the following configuration into the file:
ini
[Unit]
Description=RTL_TCP SDR Streaming Server
After=network.target
[Service]
ExecStart=/usr/bin/rtl_tcp -a 0.0.0.0
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Use code with caution.
bash
sudo systemctl daemon-reload
sudo systemctl enable rtltcp.service
sudo systemctl start rtltcp.service
Use code with caution.
4. Connect Your Client Remotely
From your local client machine (desktop, phone, tablet), open your SDR application and connect to the IP address of the remote Ubuntu machine on port
1234. [1]- Example Client string:
192.168.1.150:1234(or your public server IP if connecting over the internet).
If you are connecting over the internet or a slow Wi-Fi link, tell me your available network upload bandwidth or if you experience audio stuttering so we can optimize the stream sample rate arguments.