如何在Ubuntu 18.04、19.04上安裝Subsonic Media Server並啟用HTTPS

本教程將向您展示如何在Ubuntu 18.04、19.04上安裝Subsonic媒體服務器,以及如何使用Nginx或Apache Web服務器為Subsonic設置反向代理,然後啟用HTTPS。

Subsonic是用Java編寫的免費(基於free bear)基於Web的媒體流媒體,可用於Linux,MacOS和Windows。 藉助Subsonic,您可以從家用計算機或任何面向公眾的計算機流式傳輸音樂,並可以使用Web瀏覽器從任何地方收聽音樂,因此您不必將音樂與文件同步應用程序(如resilio sync或Syncthing)同步。

亞音速功能

  • 支持MP3,OGG,AAC以及通過HTTP流式傳輸的任何其他音頻或視頻格式。
  • 可與任何支持網絡的媒體播放器一起使用,例如Winamp,iTunes,XMMS,VLC,MusicMatch和Windows Media Player
  • 專輯封面,即時播放列表,即時轉碼
  • 適用於Android,iPhone,Windows Phone的移動應用程序以及適用於Mac,Windows和Chrome的桌面應用程序。 Android應用程序支持離線播放。
  • 收聽播客,分配評分,添加評論以及創建播放列表。
  • 與親朋好友分享音樂。
  • 流視頻(高級功能)
  • 和更多

如何在Ubuntu 18.04、19.04上安裝Subsonic Media Server

Subsonic媒體服務器是用Java編寫的,因此您需要安裝Java運行時環境才能運行它。 您可以使用以下命令安裝openjdk 8運行時環境。

sudo apt update

sudo apt install openjdk-8-jre

在撰寫本文時,Subsonic與Java 11不兼容。如果您先前已在Ubuntu 18.04、19.04上安裝Java 11,則需要運行以下命令以選擇默認Java版本。

sudo update-alternatives --config java

鍵入數字以選擇Java 8作為默認版本。

亞音速Java 8 Java 11

接下來,使用以下命令下載Subsonic deb軟件包,該軟件包將下載版本6.1.5。 您可以在Subsonic下載頁面上查看最新版本。 如果有新版本可用,只需用新版本號替換6.1.5。

wget https://s3-eu-west-1.amazonaws.com/subsonic-public/download/subsonic-6.1.5.deb

用安裝 dpkg

sudo dpkg -i subsonic-6.1.5.deb

安裝完成後,Subsonic守護程序將自動啟動。 您可以通過以下方式查看其狀態:

systemctl status subsonic

樣本輸出:

● subsonic.service - LSB: Subsonic daemon
   Loaded: loaded (/etc/init.d/subsonic; bad; vendor preset: enabled)
   Active: active (running) since Fri 2018-12-02 08:03:27 UTC; 7min ago
     Docs: man:systemd-sysv-generator(8)
   CGroup: /system.slice/subsonic.service
           └─3316 java -Xmx150m -Dsubsonic.home=/var/subsonic -Dsubsonic.host=0

如果它沒有運行,則可以使用以下命令手動啟動它

sudo systemctl start subsonic

並在系統啟動時啟用自動啟動。

sudo systemctl enable subsonic

默認情況下,亞音速監聽 0.0.0.0:4040,表示它接受來自本地網絡和Internet的請求。

如果您在本地Ubuntu計算機上安裝了Subsonic,則在瀏覽器中鍵入以下地址以訪問Subsonic Web界面。

http://localhost:4040

如果您在面向Internet的Ubuntu服務器上安裝了Subsonic,請在瀏覽器中鍵入以下地址以訪問Subsonic Web界面。

http://your-server-ip:4040

subsonic-ubuntu-18.04-18.10

如果在Ubuntu上使用Java 11,則會看到以下錯誤。 解決方案是使用Java 8。

亞音速HTTP錯誤:503服務不可用

請注意,如果您在家庭服務器上安裝Subsonic媒體服務器,並且想從外部網絡訪問它,那麼您將需要在路由器中配置端口轉發。 如果您的ISP提供了動態IP地址,則還應該設置動態DNS。

默認的用戶名和密碼是 admin。 登錄後,您應該轉到 設置>用戶 更改管理員密碼。

subsonic-媒體服務器-ubuntu 18.04

另外,在設置頁面中添加媒體文件夾,然後單擊保存按鈕。 請注意,Subsonic運行時用戶必須可以訪問該文件夾。 添加文件夾後,單擊“立即掃描媒體文件夾”按鈕,您將能夠在索引頁面中聽音樂。

亞音速添加媒體文件夾

變更使用者

默認情況下,Subsonic進程以root用戶身份運行。 出於安全原因,您應將其更改為普通用戶,方法是編輯 /etc/default/subsonic 文件。

sudo nano /etc/default/subsonic

找到以下行:

SUBSONIC_USER=root

將root更改為您自己的用戶帳戶,例如 linuxbabe

SUBSONIC_USER=linuxbabe

保存並關閉文件。 然後重新啟動subsonic守護程序,以使更改生效。

sudo systemctl restart subsonic

為Subsonic設置Nginx反向代理

如果要將域名用於Subsonic Web界面,則可以設置Nginx反向代理。 使用以下命令在Ubuntu 18.04 / 19.04上安裝Nginx。

sudo apt install nginx

然後創建用於代理的服務器阻止文件。

sudo nano /etc/nginx/conf.d/subsonic-proxy.conf

將以下文本放入文件中。 更換 subsonic.your-domain.com 用您自己的域名。 位置{…}塊將向Subsonic守護程序發出Nginx代理請求。 不要忘記為子域設置A記錄。

server {
        listen 80;
        server_name subsonic.your-domain.com;

        location / {
                proxy_pass http://127.0.0.1:4040;
                proxy_set_header Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
        }
}

保存並關閉文件。 然後測試Nginx配置。

sudo nginx -t

如果測試成功,則重新加載Nginx以使新配置生效。

sudo systemctl reload nginx

現在,Subsonic媒體服務器位於Nginx的後面,您可以使用域名訪問Subsonic Web UI(subsonic.your-domain.com

使用Nginx啟用HTTPS

要啟用HTTPS安全連接,您可以從Let’s Encrypt獲取並安裝免費的TLS / SSL證書。 使用以下命令安裝Let’s Encrypt(certbot)客戶端:

sudo apt install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt install certbot python3-certbot-nginx

然後發出以下命令,該命令使用Certbot Nginx插件自動獲取並安裝TLS證書。 將紅色文本替換為您的實際數據。

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email your-email-address --domain subsonic.your-domain.com

亞音速certbot https證書

在幾秒鐘之內,您應該看到如下所示的祝賀消息,這表示證書已成功獲得。亞音速Ubuntu 16.04 https letsencrypt
再次轉到您的Subsonic媒體服務器Web界面,您會發現HTTP連接自動重定向到HTTPS安全連接。 接下來,我們需要修改Nginx配置文件。

sudo nano /etc/nginx/conf.d/subsonic-proxy.conf

現在有兩個服務器{…}塊,因為Certbot自動配置了SSL服務器塊(偵聽443 ssl)。 在SSL服務器塊中,將以下行添加到location / {…}塊中。

proxy_redirect http:// https://;

亞音速https設置頁面

此行會將所有http服務器響應重定向到https服務器響應,這是正確顯示Subsonic設置頁面所必需的。 保存並關閉文件。 測試Nginx配置並重新加載。

sudo nginx -t

sudo systemctl reload nginx

設置Apache反向代理

如果您更喜歡Nginx而不是Apache,請使用以下命令進行安裝:

sudo apt install apache2

要將Apache用作反向代理,我們需要啟用 proxy 模塊和標頭模塊。

sudo a2enmod proxy proxy_http headers

然後為Subsonic媒體服務器創建虛擬主機文件。

sudo nano /etc/apache2/sites-available/subsonic-proxy.conf

將以下配置放入文件中。 更換 subsonic.your-domain.com 與您的實際域名。 不要忘記為此子域創建DNS A記錄。

<VirtualHost *:80>
   ServerName subsonic.your-domain.com
   ErrorDocument 404 /404.html
   DocumentRoot /var/www
   ProxyPass / http://localhost:4040/
   ProxyPassReverse / http://localhost:4040/
   Header always unset X-Frame-Options
</VirtualHost>

保存並關閉文件。 然後啟用此虛擬主機。

sudo a2ensite subsonic-proxy.conf

重新啟動Apache

sudo systemctl restart apache2

現在,您可以使用域名訪問Subsonic Web UI。

在Apache上啟用HTTPS

要啟用HTTPS安全連接,您可以從Let’s Encrypt獲取並安裝免費的TLS / SSL證書。 使用以下命令安裝Let’s Encrypt(certbot)客戶端:

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt install certbot python3-certbot-apache

然後使用apache插件獲取並安裝證書。

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --must-staple --email your-email-address -d subsonic.your-domain.com

在幾秒鐘之內,您應該看到如下所示的祝賀消息,這表示證書已成功獲得。亞音速Ubuntu 16.04 https letsencrypt

您的TLS證書將自動安裝。 再次轉到您的Subsonic媒體服務器Web界面,您會發現HTTP連接自動重定向到HTTPS安全連接。

我希望本教程可以幫助您在Ubuntu 18.04和Ubuntu 19.04上安裝Subsonic媒體服務器。 與往常一樣,如果您發現此帖子有用,請訂閱我們的免費新聞通訊。 您也可以在Google +,Twitter或喜歡我們的Facebook頁面上關注我們。

Sidebar