在终端中使用 SOCKS 流式传输广播

Stream radio using SOCKS in a terminal

我想通过终端收听在线广播"tunein.com",但有一个限制:该网站在我的网络上被阻止,所以我必须使用代理才能访问它。

我为此设置了一个 SOCKS 5 代理,但我不知道如何从命令行使用它。

  1. 我在我的终端中尝试了 MPlayer,但我不知道如何启用 SOCKS 代理;
    没有像 socks_proxy=localhost:1080
  2. 这样的设置
  3. 这适用于 Firefox 上的 chainproxy,但这需要 GUI
  4. 这适用于 Google Chrome,但这需要 GUI

如何使用 MPlayer 等命令行程序来使用我的 SOCKS 代理?

我在 mplayer 的文档中没有找到任何关于 socks 代理支持的信息。
但是您可以使用 curl 访问您的 socks 代理并将音频流通过管道传输到 mplayer。

以下命令行通过侦听端口 1080 的本地 socks5 代理播放广播流:

curl --socks5 localhost:1080 http://ibizaglobalradio.streaming-pro.com:8024 | mplayer -quiet -cache 1024 -

您可以对缓存大小进行一些试验,或者根本不需要使用缓存。

您可以使用 tsocks,这是一个使用 socks 代理服务器启动其他程序的程序。

例如,用 mplayer 收听播放列表:

tsocks mplayer -playlist http://bassdrive.com/bassdrive.m3u

我使用的 socks 服务器位于本地主机的 5000 端口。因此,我将以下内容放入 /etc/tsocks.conf

server = localhost
# Server type defaults to 4 so we need to specify it as 5 for this one
server_type = 5
# The port defaults to 1080 but I've stated it here for clarity 
server_port = 5000