网站搜索

如何在 Linux 上安装 SHOUTCast 广播服务器(在线媒体流)


SHOUTcast 是用于通过互联网传输媒体的专有软件,特别是用于互联网上广播电台的音乐直播,由 Nullsoft 开发,具有适用于所有主要平台(包括 Linux)的版本。

本教程将指导您如何在CentOS 8中安装SHOUTcast分布式网络音频服务器,借助它您可以使用媒体播放器,例如Winamp Mixxx 连接到流媒体服务并向互联网听众广播您的音频播放列表。

虽然本教程仅涵盖 CentOS 8/7 计算机上的 SHOUTcast 服务器安装,但相同的过程可以应用于其他 Linux 发行版,例如 RHELFedoraUbuntuDebianLinux Mint 等,并注明您必须调整防火墙命令以适应适合您的 Linux 发行版。

第 1 步:下载并安装 SHOUTcast 服务器

1. 在继续安装 SHOUTcast 服务器之前,请创建一个将运行服务器的本地用户,因为从 root 帐户运行服务器可能会带来严重的安全问题在您的系统上。

因此,使用 root 帐户登录系统,创建一个名为 radio 的新用户,从 root 帐户注销后,然后使用新创建的用户登录。以下是需要在终端上执行的以下必需命令。

adduser radio
passwd radio
su - radio
pwd 

2.使用广播帐户登录系统后,创建两个名为下载服务器的目录,然后切换到下载文件夹。

mkdir download
mkdir server
cd download

3. 接下来,根据您的系统架构,访问官方 Nullsot 下载页面,获取适用于 Linux 的 SHOUTcast 服务器存档的最新版本。

  1. http://download.nullsoft.com/shoutcast/tools

或者,使用以下 wget 实用程序从命令行下载存档。

--------------- On 64-bit ---------------
wget http://download.nullsoft.com/shoutcast/tools/sc_serv2_linux_x64-latest.tar.gz

--------------- On 32-bit --------------- 
wget http://download.nullsoft.com/shoutcast/tools/sc_serv2_linux-latest.tar.gz

4.下载完成后,解压存档文件,列出sc_serv可执行二进制文件的目录,并将其复制到安装目录,位于 >server 文件夹,然后通过发出以下命令移动到 SHOUTcast 安装路径。

tar xfz sc_serv2_linux_x64-latest.tar.gz
ls
cp  sc_serv  ../server/
cd  ../server/
ls

5. 现在您已位于服务器安装路径中,创建两个名为 controllogs 的目录,实际安装就完成了过程。使用 ls 命令列出目录内容以验证所有内容是否都已就位。

mkdir control
mkdir logs
ls

第 2 步:创建 SHOUTcast 配置文件

6. 为了运行和操作服务器,您需要为 SHOUTcast 创建配置文件。打开您最喜欢的文本编辑器并创建一个名为 sc_serv.conf 的新文件。

确保此文件与创建 sc_serv e 可执行二进制文件的路径相同。使用 pwd 命令应该显示这个绝对路径 - /home/radio/server)。

cd /home/radio/server/
pwd
vi sc_serv.conf

将以下语句添加到 sc_serv.conf 文件(示例配置)。

adminpassword=password
password=password1
requirestreamconfigs=1
streamadminpassword_1=password2
streamid_1=1
streampassword_1=password3
streampath_1=http://radio-server.lan:8000
logfile=logs/sc_serv.log
w3clog=logs/sc_w3c.log
banfile=control/sc_serv.ban
ripfile=control/sc_serv.rip

您应该注意此文件的一些重要设置是密码语句,您必须相应地更改它们:

  • adminpassword – 通过 Web 界面对服务器执行远程管理所需的管理员密码。
  • streampassword_1 – 远程媒体播放器连接媒体内容并将其流式传输到服务器所需的密码。

或者,如果您想为 SHOUTcast 服务器创建配置文件,您可以转到 download 目录并运行 builder.shsetup.sh脚本。

cd ../download/
bash setup.sh

这将允许您从可从以下地址访问的 Web 界面配置服务器。

http://localhost:8000
OR
http://ipaddress:8000

创建配置后,您可以将其复制到服务器安装目录。

7. 要启动服务器,请从当前工作目录执行 sc_serv 文件,该目录必须是 server 目录,使用 & bash 运算符,并将浏览器定向到 http://localhost-or-IP:8000 URL。

另外,使用 netstat 命令查看服务器是否正在运行以及它侦听的端口号。

chmod +x sc_serv
./sc_serv &
netstat -tulpn | grep sc_serv

第 3 步:打开防火墙连接

8. 现在SHOUTcast服务器已启动并运行,但由于CentOS防火墙的限制,外部世界还无法访问它。要打开服务器的外部连接,请使用 root 帐户登录并添加将打开端口 8000 TCP 的规则。

添加规则后,重新加载防火墙以应用更改并从您的根帐户注销。

su -
firewall-cmd --add-port=8000/tcp --permanent
firewall-cmd --reload
exit

9. 然后从远程计算机打开浏览器,并在 URL 字段的端口 8000 上输入服务器 IP 地址 - http://192.168.1.80:8000 - 和 SHOUTcast Web 界面应如下面的屏幕截图所示,没有可用的实时流。

第 4 步:管理 SHOUTcast 服务器并创建守护进程脚本

10. 用于管理 SHOUTcast 广播服务器的命令是二进制文件本身,必须从其安装路径位置运行才能
能够读取配置文件。使用 daemon 命令选项将服务器作为守护程序运行。

您还可以通过指示配置文件所在的位置来指示服务器从不同位置读取其配置,但请注意,使用此选项需要创建日志和控制目录,这在实践中可能会造成混乱,并可能导致服务器无法运行开始。

pwd  ## Assure that you are in the right installation directory - /home/radio/server

./sc_serv   ## Start the server in foreground – Hit Ctrl + c to stop

./sc_serv daemon  ## Start the server as a daemon

ps aux | grep sc_serv   ## Get Server PID

killall sc_serv  ## Stop server daemon

11. 如果您需要一个简化的命令来启动或停止 SHOUTcast 广播服务器,请再次以 root 身份登录并在 /usr/local/bin/ 路径上创建以下可执行脚本如下例所示。

su -
vi /usr/local/bin/radio

现在将以下摘录添加到 radio 文件中。

#!/bin/bash
case $1 in
                start)
cd /home/radio/server/
./sc_serv &
              ;;
                stop)
killall sc_serv
                ;;
               start_daemon)
cd /home/radio/server/
./sc_serv daemon
               ;;
                *)
echo "Usage radio start|stop"
                ;;
esac

12. 文件创建后,使其可执行,退出 root 帐户,新的命令将可用于您的 SHOUTcast 广播服务器管理。

chmod +x /usr/local/bin/radio
exit

13.从现在开始要管理服务器,请使用带有以下开关的radio命令。

radio start_daemon		## Starts SHOUTcast server as a daemon

radio start                   ## Starts SHOUTcast server in foreground

radio stop                    ## Stops SHOUTcast server

14. 如果您希望在重新启动后自动启动服务器,但仅在用户登录时(在本例中服务器安装在名为 radio 的本地用户上),请发出以下命令从无线电帐户主路径命令,然后注销并再次登录以验证功能,如下面的屏幕截图所示。

whoami  
echo “radio start_daemon” >> ~/.bashrc

就是这样!现在,SHOUTcast 服务器已准备好接收来自远程媒体播放器的声音或播放列表,例如来自 WindowsMixxxWinamp > 来自 Linux 并通过 Internet 广播所有收到的音频内容。