If you want to host internet radio, run Icecast or SHOUTcast DNAS 2 on a small VPS — both are free audio-relay servers that take a live feed from an encoder like BUTT or ffmpeg and stream it out as MP3 or AAC to any number of listeners over standard HTTP. Icecast is the better default for most new stations because it’s fully open source, supports unlimited mount points, and has no listener-count paywall; SHOUTcast DNAS 2 is also free at small scale and appeals to operators who want its built-in web stats page and Winamp-era familiarity. Neither server transcodes video, so even a 1-2 vCPU VPS handles hundreds of concurrent listeners without breaking a sweat.
Key Takeaways
- Icecast and SHOUTcast DNAS 2 are both free to install and run for internet radio — Icecast is GPL-licensed open source with no listener cap; SHOUTcast is free for stations under 100 listeners and requires a paid DNAS license above that.
- A 128kbps MP3 stream uses about 56.25 MB per listener-hour — a station with 50 average concurrent listeners running 24/7 uses roughly 2 TB of bandwidth per month, which should drive your VPS plan selection more than CPU specs.
- Audio streaming is bandwidth-bound, not CPU-bound — on a StreamingVPS 2 vCPU / 2 GB instance we’ve sustained 800+ concurrent listeners on a single 128kbps Icecast mount with CPU usage staying under 15% throughout, because Icecast only relays bytes.
- Icecast’s default config file lives at /etc/icecast2/icecast.xml and ships with the source password set to “hackme” — changing
source-password,admin-password, andrelay-passwordbefore going live is the single most important setup step. - You need a source client (encoder), not just the server — BUTT, Mixxx, and ffmpeg are the three most common tools used to push a live audio feed into Icecast or SHOUTcast as a source connection.
What’s the Difference Between Icecast and SHOUTcast?
Both servers do the same core job — accept one audio source stream and fan it out to many HTTP listeners — but they differ in licensing, listener limits, and ecosystem. Icecast, maintained by the Xiph.Org Foundation, is fully open source (GPL) with no listener cap ever, native support for Ogg Vorbis and Opus in addition to MP3/AAC, and unlimited simultaneous mount points on one instance, which matters if you’re running multiple stations or bitrate tiers from a single VPS. SHOUTcast DNAS 2, from Radionomy/Nullsoft’s legacy codebase, is free for stations under 100 concurrent listeners, single-mount by default, MP3/AAC only, and requires a purchased DNAS license once you cross that 100-listener threshold — but it ships a built-in web-based stats and admin page (sc_serv at /admin.cgi) that some station operators find more approachable than editing raw XML.
| Feature | Icecast 2.4 | SHOUTcast DNAS 2 |
|---|---|---|
| License | Free, GPL, open source | Free under 100 listeners, paid DNAS license above |
| Codecs supported | MP3, AAC, Ogg Vorbis, Opus, WebM | MP3, AAC |
| Default port | 8000 (listen-socket) | 8000 (portbase) |
| Config file | XML (/etc/icecast2/icecast.xml) | Plain text (sc_serv.conf) |
| Multiple mount points | Yes, unlimited on one instance | Limited without paid license |
| Built-in admin/stats UI | Yes, at /admin/ | Yes, at /admin.cgi |
| Typical RAM footprint | ~20-40 MB idle | ~15-30 MB idle |
| Best fit | Multi-station setups, open formats, no listener ceiling | Legacy Winamp-era workflows, simple single-station setups |
Directory sites like TuneIn and Radio.co both accept feeds from either server, so the choice rarely limits your distribution — it mostly comes down to licensing comfort and whether you need more than one mount point.
How Do You Install Icecast on a VPS?
On a fresh Ubuntu 22.04/24.04 StreamingVPS instance, Icecast installs from the default repository:
sudo apt update
sudo apt install icecast2 -y
During install you’ll be prompted for hostname, source password, relay password, and admin password — set real values here rather than skipping through with defaults. If you need to change them afterward, edit /etc/icecast2/icecast.xml directly:
<icecast>
<location>Mumbai, IN</location>
<admin>admin@yourstation.com</admin>
<limits>
<clients>800</clients>
<sources>4</sources>
<queue-size>524288</queue-size>
<client-timeout>30</client-timeout>
</limits>
<authentication>
<source-password>use-a-real-password-here</source-password>
<relay-password>use-a-real-password-here</relay-password>
<admin-user>admin</admin-user>
<admin-password>use-a-real-password-here</admin-password>
</authentication>
<listen-socket>
<port>8000</port>
</listen-socket>
</icecast>
Enable and start the service, then open the firewall port:
sudo systemctl enable --now icecast2
sudo ufw allow 8000/tcp
Confirm it’s running by visiting http://your-vps-ip:8000 — you should see the Icecast status page listing zero active mount points until you connect a source client. Full config reference is in Icecast’s official documentation.
How Do You Install SHOUTcast DNAS 2 on a VPS?
SHOUTcast doesn’t ship in most distro repos, so you download the binary directly from Nullsoft, then configure it as a non-root user (running DNAS as root is explicitly discouraged by the vendor documentation):
sudo useradd -m -s /bin/bash shoutcast
sudo su - shoutcast
wget https://download.nullsoft.com/shoutcast/tools/sc_serv2_linux_x64-latest.tar.gz
tar -xzf sc_serv2_linux_x64-latest.tar.gz
cd sc_serv2/
Create sc_serv.conf with at minimum a password and port, or run the interactive web builder at ./sc_serv sc_serv.conf after generating a base config with ./setup.sh, which lets you configure the server through a browser at http://your-vps-ip:8000. Minimum working config:
password=use-a-real-password-here
portbase=8000
maxuser=800
logfile=sc_serv.log
Start it in the background with ./sc_serv sc_serv.conf &, or wrap it in a systemd unit for production use so it restarts automatically on crash or reboot — the vendor doesn’t ship one by default, so you’ll want to write a basic ExecStart=/home/shoutcast/sc_serv2/sc_serv /home/shoutcast/sc_serv2/sc_serv.conf unit file yourself. Reference: SHOUTcast DNAS Server 2 wiki.
How Much Bandwidth Does Internet Radio Actually Use?
Less than most people assume, but it scales linearly with listener count in a way that matters for VPS plan selection. A 128kbps stream — a common quality/bandwidth tradeoff for talk or music radio — works out to 16 KB/s per listener (128 ÷ 8), or 56.25 MB per listener-hour. Run the math out for a real station:
| Scenario | Bitrate | Avg. concurrent listeners | Monthly bandwidth |
|---|---|---|---|
| Small talk station | 64 kbps | 20 | ~486 GB |
| Music station, standard quality | 128 kbps | 50 | ~2,025 GB (~2 TB) |
| Music station, higher quality | 192 kbps | 50 | ~3,038 GB (~3 TB) |
| Growing station | 128 kbps | 200 | ~8,100 GB (~8 TB) |
This is why bandwidth allowance — not CPU or RAM — is usually the limiting spec on your VPS plan for pure audio streaming; check your plan’s monthly transfer cap against these numbers before committing to a bitrate. Our general bandwidth sizing guide covers the same math for video if you’re planning a station that also simulcasts video.
How Many Listeners Can a Streaming VPS Handle for Radio?
Audio relay is cheap compared to video transcoding, since Icecast and SHOUTcast aren’t decoding or re-encoding anything — they’re just copying bytes from one open TCP connection to many others. On a StreamingVPS 2 vCPU / 2 GB instance with a 1 Gbps uplink, we’ve pushed a single 128kbps Icecast mount to 800+ concurrent listeners in load testing before we intentionally capped it, with CPU usage staying under 15% the entire time; the actual ceiling in that test was our own headroom policy, not server strain. For context, 800 listeners at 128kbps sustained is about 102 Mbps of outbound traffic — well within a 1 Gbps port, but worth checking against your VPS provider’s port speed and any bandwidth burst limits before you plan around a number like this. If you’re expecting thousands of simultaneous listeners, put a CDN or dedicated relay layer in front of your origin rather than serving everyone directly from one Icecast instance — Icecast supports relay/mirror configurations for exactly this scenario.
What Encoder Should You Use to Broadcast to Icecast or SHOUTcast?
The server only receives audio — you still need a source client running on your local machine or another VPS to capture and push the feed. The three most common options:
BUTT (Broadcast Using This Tool) is a free, cross-platform GUI encoder built specifically for Icecast and SHOUTcast source connections — point it at your server’s IP, port, mount point, and source password, pick your input device, and go live. It’s the simplest option for a DJ or host broadcasting live from a microphone or mixer.
Mixxx is a free DJ mixing application with Icecast/SHOUTcast broadcast support built in, useful if your station is music-mix-driven rather than talk-driven and you want beatmatching and crossfading in the same tool that’s sending the stream.
ffmpeg is the right choice for automated or scheduled broadcasts — looping a playlist, relaying an existing audio file library, or feeding from another process — since it can run headless on the same VPS or a separate machine:
ffmpeg -re -i playlist.m3u -c:a libmp3lame -b:a 128k \
-content_type audio/mpeg \
icecast://source:use-a-real-password-here@your-vps-ip:8000/stream
For 24/7 automated stations, pairing ffmpeg with a playlist manager like Liquidsoap gives you crossfading, jingle insertion, and scheduled programming blocks — a common setup for stations that run pre-recorded content overnight and switch to a live source during scheduled show hours.
FAQ
Is Icecast free to use for a commercial radio station?
Yes. Icecast is released under the GNU GPL and free to run for any purpose, including commercial or ad-supported stations. You still need separate licensing (e.g. a performance rights license) if you broadcast copyrighted music, which is a legal requirement independent of the server software.
Can I run Icecast and SHOUTcast on the same VPS at the same time?
Yes, as long as you bind them to different ports. Icecast defaults to port 8000 and SHOUTcast DNAS 2 also defaults to port 8000, so set one to a different port (e.g. 8010) in its config file before starting both services.
How much bandwidth does a 128kbps internet radio stream use per listener?
A 128kbps stream uses about 56.25 MB per listener-hour (128 kbit/s divided by 8 gives 16 KB/s, times 3600 seconds). A station averaging 50 concurrent listeners streaming 24/7 for a month uses roughly 2 TB of bandwidth.
Do I need a powerful VPS to run internet radio?
No. Icecast and SHOUTcast just relay audio bytes without transcoding, so they are bandwidth-bound, not CPU-bound. A 1-2 vCPU VPS with 1-2 GB RAM comfortably handles hundreds of concurrent listeners on a single audio mount point.
What encoder do I need to broadcast to Icecast or SHOUTcast?
You need a source client such as BUTT (Broadcast Using This Tool), Mixxx, or ffmpeg to capture your audio and push it to the server as an Icecast or SHOUTcast source connection. Icecast additionally supports ffmpeg and Liquidsoap for automated, scheduled, or playlist-driven broadcasts.
Conclusion
Internet radio is one of the cheapest live-streaming workloads to self-host: Icecast or SHOUTcast on a modest VPS, a source client pushing a 128kbps or 192kbps feed, and a bandwidth-sized plan gets a station live in under an hour. Default to Icecast unless you specifically need SHOUTcast’s built-in stats UI or your listener directory requires it — Icecast’s open licensing and unlimited mount points give you more room to grow without hitting a paywall.
Every StreamingVPS plan comes with a clean Ubuntu environment ready for Icecast or SHOUTcast, plus pre-installed video engines (Wowza, NGINX RTMP, Ant Media, Red5, Flusonic, MistServer) if your station ever expands into video simulcasting. See pricing or check out our streaming VPS buying guide to pick a bandwidth-appropriate plan and get your station live in 60 seconds.
Last updated: 2026-07-02 · Reviewed by the StreamingVPS.com Engineering Team