Skip to main content
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]
 
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]
 
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]
 
3. Verify the Installation
Before streaming over the network, confirm that Ubuntu successfully sees your hardware: [1]
 
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_tcp
The 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]
 
Local Host Only (Same Computer) [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:

    bash
    rtl_tcp -a 0.0.0.0 -p 8080 -s 1024000
    
    Use code with caution.

    [1, 2]

 
Connecting a Client Application
Open your favorite SDR software on the client device (such as SDR++, Gnumeric/Gqrx, or SDR#). [1, 2]
  1. Change the source/driver type from "RTL-SDR (USB)" to RTL-SDR Spectrum Server (or rtl_tcp).
  2. Input your Ubuntu computer's network IP address and the designated port (e.g., 192.168.1.50:1234).
  3. 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.
 

 
 
 
 
 
 
 
 
 

14 sites
  • 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.
 
2. Configure the Ubuntu Firewall (UFW) [1]
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.
Save and exit (Ctrl+O, Enter, Ctrl+X), then enable and start the service: [1]
 
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.
 

 
 
 
 
 
Tags:

Theme by ZTECHGUY