News

Discover more

樹莓派作爲家用(yòng)服務器的(de)應用(yòng)場(chǎng)景


自從Raspberry Pi發布後,世界各國人(rén)民在互聯網上不斷創新樹莓派的(de)妙用(yòng),提供了(le)很多(duō)有趣和(hé)具有挑戰性的(de)使用(yòng)方法。雖然這(zhè)些想法都很棒,但樹莓派( RPi )最明(míng)顯卻又是最不吸引人(rén)的(de)用(yòng)處是:創建你的(de)完美(měi)家用(yòng)服務器。

如果你有幾個(gè)不同的(de)電腦(nǎo)需要同步和(hé)自動化(huà)備份,RPi可(kě)以做(zuò)到。如果你想通(tōng)過家中的(de)任意屏幕來(lái)訪問你的(de)音(yīn)樂(yuè)和(hé)視頻(pín),RPi也(yě)能實現。也(yě)許你有一個(gè)或兩個(gè)打印機,你想要簡單與大(dà)家共享,樹莓派在硬件和(hé)時(shí)間上用(yòng)最小投資就能滿足你的(de)這(zhè)些需求。

樹莓派的(de)好處:

低成本:35美(měi)元(約合242元RMB),B型的(de)RPi接近一台完整的(de)電腦(nǎo),512M内存,100Mb以太網,SD卡插槽,2個(gè)USB接口,音(yīn)頻(pín)輸出和(hé)HDMI或RCA視頻(pín)輸出。

能源效率:硬件成本隻是服務器費用(yòng)的(de)一部分(fēn),因爲你需要考慮能源成本去不斷運行設備。家用(yòng)服務器所需要的(de)服務不會占用(yòng)太多(duō)CPU,大(dà)部分(fēn)時(shí)間它都處于空閑狀态。RPi的(de)超低功率組件非常适合這(zhè)個(gè)工作負載,這(zhè)有助于降低你的(de)電費消耗。我的(de)一個(gè)B型RPi加上外部硬盤總共隻有8瓦,然而用(yòng)老式速龍的(de)機器在閑置時(shí)消耗54瓦。

低噪音(yīn):因爲RPi沒有風扇和(hé)移動部件,在你最終配置中的(de)唯一能生成噪音(yīn)或明(míng)顯熱(rè)量的(de)組件就是硬盤。我的(de)體會是現代驅動器足夠安靜,要比其他(tā)的(de)設備安靜的(de)多(duō)(如媒體中心,遊戲機或其他(tā)電腦(nǎo))。如果你家裏沒有爲布線提供更多(duō)的(de)靈活性選擇,RPi的(de)小尺寸、少量發熱(rè)和(hé)低噪音(yīn)也(yě)許讓你走過它旁邊都很難發現。

新機會:一個(gè)不怎麽實際的(de)好處是簡單快(kuài)樂(yuè)的(de)嘗試新事物(wù)!對(duì)我來(lái)說,這(zhè)是我第一次真正工作在基于Debian的(de)發行版,很可(kě)能也(yě)是許多(duō)Linux愛(ài)好者們第一次有機會嘗試一個(gè)基于ARM的(de)體系結構。

布置硬件:

對(duì)于一個(gè)家庭服務器來(lái)說,你将需要一個(gè)中等容量的(de)SD閃存卡作爲本地存儲。閃存卡不需要很大(dà)容量,但是速度越快(kuài)越好。我選擇了(le)一個(gè)名牌SD卡,8GB容量和(hé)CLASS 10的(de)速度等級。對(duì)于備份和(hé)存儲多(duō)媒體文件,一個(gè)有USB連接插槽的(de)硬盤驅動器是必須的(de)。我選擇一個(gè)1.5TB的(de)硬盤和(hé)一個(gè)Calvary EN-CAHDD-D 2-bay USB 2.0硬盤連接基座。這(zhè)個(gè)連接基座有個(gè)功能,在RAID-0模式中連接兩個(gè)硬盤,總有一天會有用(yòng)的(de)。最後,RPi不帶電源線,但可(kě)以用(yòng)大(dà)多(duō)數智能手機充電器所用(yòng)的(de)5v微型USB。

安裝操作系統:

安裝RPi操作系統包括了(le)大(dà)量細節,但這(zhè)裏有一些家用(yòng)特定服務器的(de)安裝提示,大(dà)緻按順序講述。

1)直接通(tōng)過http://www.raspberrypi.org/downloads 獲取Raspbian “Wheezy”安裝鏡像,并寫入到SD卡,用(yòng)網站上已列出步驟;

2)第一次引導RPi時(shí),連接一個(gè)鍵盤、鼠标和(hé)顯示器。在引導RPi之前别忘打開顯示器,可(kě)以檢測到正确的(de)HDMI或混合輸出端口;

3)RPi有一個(gè)很好的(de)”raspi-config”界面,在第一次啓動時(shí)你會看到。對(duì)于家庭服務器來(lái)說,以下(xià)選擇将會有用(yòng):

expand_rootfs:調整默認2GB OS鏡像的(de)大(dà)小,來(lái)填滿閃存卡剩餘的(de)内存;
change_pass:修改默認密碼”raspberry”,越安全的(de)密碼越好;
設置你的(de)地點和(hé)時(shí)區(qū);
memory_split:給GPIU服務分(fēn)配最少的(de)内存(16M)盡可(kě)能爲其他(tā)服務留下(xià)更多(duō)内存;
SSH:别忘開啓SSH服務;
boot_behaviour:關閉“啓動至桌面(boot to desktop)”(再次爲你的(de)其他(tā)服務節省内存);
完成後,你将在出現 pi@raspberrypi 提示符,安裝腳本可(kě)以在任何時(shí)間通(tōng)過 sudo raspi-config命令重新運行。

還(hái)有一些其他(tā)配置,然後操作系統就可(kě)以用(yòng)了(le)。

1)一個(gè)靜态IP讓一切變得(de)更容易,切換eth0的(de)網絡設置:

sudo nano -w /etc/network/interfaces

更改eth0的(de)那行 iface eth0 inet dhcp ,如下(xià)所示(根據你的(de)家庭網絡設置修改):

======/etc/network/interfaces======
...
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1
...
======/etc/network/interfaces======

2)創建本地用(yòng)戶并加入到users組和(hé)sudo組:

sudo adduser YOURUSERIDHERE
sudo usermod -a -G users YOURUSERIDHERE
sudo usermod -a -G sudo YOURUSERIDHERE

3)更新系統确保所有的(de)庫是最新的(de):

sudo apt-get update
sudo apt-get upgrade

4)好了(le),準備重新啓動吧!先關閉PI:

sudo /sbin/shutdown -h now

一旦關閉(注意RPi電路闆上的(de)綠(lǜ)色LED狀态指示燈,可(kě)以知道什(shén)麽時(shí)候完成關閉了(le)),拔下(xià)顯示器,鍵盤,鼠标和(hé)電源線。插入USB端口上的(de)硬盤,然後插回電源重啓RPi。

5)一旦RPi開啓(這(zhè)些綠(lǜ)色LED指示燈用(yòng)來(lái)描述狀态),你可(kě)以從遠(yuǎn)程網絡上的(de)任何其他(tā)機器ssh到RPi并完成所有的(de)配置(更改以下(xià)命令裏的(de)IP爲你的(de)靜态IP):

ssh YOURUSERIDHERE@192.168.1.10

祝賀你,有了(le)一個(gè)可(kě)以工作的(de)樹莓派!

外設:

第一件事是要連接外設。用(yòng)dmesg來(lái)尋找你的(de)存儲設備,會發現幾乎可(kě)以肯定是/dev/sda。我喜歡使用(yòng)自動挂載去挂載移動存儲設備,這(zhè)樣更靈活,因爲在啓動時(shí)這(zhè)些設備也(yě)許沒有或者沒準備好:

sudo apt-get install autofs
sudo nano -w /etc/auto.master 
======/etc/auto.master======
...
/misc /etc/auto.misc
...
======/etc/auto.master======

sudo nano -w /etc/auto.misc

注意,我的(de)外部存儲設備是ext4格式,如果需要的(de)話(huà)可(kě)以在下(xià)面更改:

======/etc/auto.misc======
...
storage -fstype=ext4:/dev/sda1
...
======/etc/auto.misc======
sudo /etc/init.d/autofs restart 
ls -lat /misc/storage

可(kě)選的(de),創建一個(gè)符号鏈接的(de)短路徑:

ln -s /misc/storage /storage

備份倉庫:

在任何家庭服務器功能列表裏最重要的(de)是提供堅如磐石的(de)備份。對(duì)于RPi來(lái)說,這(zhè)很簡單,在Linux中有豐富的(de)網絡共享選項:Samba/CIFS用(yòng)于Windows機器,NFS用(yòng)于基于UNIX的(de)設備,甚至SFTP可(kě)以用(yòng)于更多(duō)新的(de)備份客戶端,如deja-dup。由于RPi隻有100M以太網接口和(hé)USB的(de)存儲設備,它沒有非常快(kuài)的(de)傳送速度。不過在另一方面,好的(de)備份客戶端是在後台自動運行,所以你不會注意略微緩慢(màn)的(de)傳輸速度。

我的(de)家庭網絡包括一台Windows 7電腦(nǎo)。對(duì)于它,我通(tōng)過Samba在RPi的(de)外部USB存儲設備上導出一個(gè)備份目錄。因爲備份程序在Windows 7基礎版上不支持網絡設備作爲備份目标,我使用(yòng)SyncBack Free去設置使其自動化(huà),每日備份。

配置Samba是容易的(de)。

1)安裝samba和(hé)common-bin庫:

sudo apt-get install samba samba-common-bin

2)使用(yòng) smbpasswd 讓你的(de)本地ID能訪問:

sudo smbpasswd -a YOURUSERIDHERE

3)編輯samba配置文件:

sudo nano -w /etc/samba/smb.conf

4)更改 workgroup = WORKGROUP 行以匹配你的(de)Windows工作組名稱。

5)注釋掉或删除[homes]和(hé)[printers]共享。(打印機共享稍後将通(tōng)過直接CUPS訪問來(lái)完成。)

6)爲Windows備份路徑增加一個(gè)條目。這(zhè)是我的(de)示例,放置在該文件的(de)底部:

======/etc/samba/smb.conf======
...
[win7pc] 
comment=Backup for windows PC
path=/storage/win7pc 
writeable=Yes 
create mask=0777 
directory mask=0777 
browsable=Yes 
public=Yes 
valid users=YOURUSERIDHERE
...
======/etc/samba/smb.conf======

7)重啓Samba使你的(de)編輯生效:

sudo /etc/init.d/samba restart

8)從Windows文件管理(lǐ)器通(tōng)過映射一個(gè)網絡設備測試連通(tōng)。

對(duì)Linux設備來(lái)說,設置和(hé)使用(yòng)deja-dup非常簡單。它被默認安裝在我的(de)Fedora 18和(hé)Ubuntu 12.10上。包的(de)名稱是“deja-dup”,程序名簡單的(de)稱爲“Backup”。雖然RPi很容易支持NFS導出,但我發現使用(yòng)deja-dup的(de)SSH選項更容易、更方便,在RPi上它不需要額外支持。同時(shí)安全起見,也(yě)要指定一個(gè)deja-dup加密密碼:

sudo mkdir /storage/linuxlaptop
sudo chown -R YOURUSERIDHERE:YOURUSERIDHERE /storage/linuxlaptop

從linux客戶端啓動備份程序,選擇“SSH”作爲備份位置,輸入RPi的(de)IP地址和(hé)你創建的(de)存儲位置。首次備份會很慢(màn),但是以後的(de)運行将隻發送增量變化(huà)的(de)數據,速度更快(kuài)。

多(duō)媒體服務器:DLNA

現在每個(gè)人(rén)的(de)文件都已安全備份。讓我們繼續看些有趣的(de)!一個(gè)DLNA服務器可(kě)以讓你集中存儲你的(de)電影(yǐng)、音(yīn)樂(yuè)和(hé)圖片。通(tōng)過這(zhè)個(gè)中心庫,家中每一個(gè)屏幕的(de)DLNA客戶端都可(kě)以輕松重放此内容。

至少,這(zhè)是一個(gè)宣稱。事實是這(zhè)樣的(de),DNLA規格并不太确定一些重要的(de)事情,如支持哪些格式或編碼。每個(gè)客戶端通(tōng)常對(duì)于支持什(shén)麽格式和(hé)服務器功能都有略微不同的(de)想法。很多(duō)高(gāo)功率的(de)服務器也(yě)許能轉碼本地内容到移動設備所支持的(de)格式,但是在RPi上是不可(kě)能的(de),在即時(shí)轉碼上經常擾亂其他(tā)功能,如暫停、快(kuài)進和(hé)倒帶。一般情況下(xià),高(gāo)功率設備如PS3、Xbox和(hé)WD TV設備支持大(dà)多(duō)數格式,而無需任何轉碼。低端設備如智能電視或藍光(guāng)播放器隻支持更有限的(de)編碼列表。

對(duì)于RPi來(lái)說,最好的(de)辦法是支持你的(de)主要的(de)DLNA設備的(de)标準編碼,然後測試你的(de)其他(tā)DLNA客戶端。在我的(de)情況下(xià),我的(de)PlayStation 3充當DLNA客戶端,PS3能夠流暢播放經Handbrake制作後的(de).m4v文件。

對(duì)于RPi的(de)DLNA服務器來(lái)說,Minidlna是個(gè)很好的(de)選擇。它已經在Raspbian發行版中,易于設置和(hé)使用(yòng),并以最小的(de)資源占用(yòng)來(lái)運行:

sudo apt-get install minidlna
sudo nano  -w /etc/minidlna.conf

這(zhè)是我/etc/minidlna.conf文件的(de)相關部分(fēn):

...
# I found keeping video + audio in different paths helpful
media_dir=V,/storage/dlna/video 
media_dir=A,/storage/dlna/music 
...
presentation_url=http://192.168.1.10:8200/
... 
friendly_name=MyRPi
...
# Since I add new media infrequently, turning off 
# inotify keeps minidlna for polling for 
# content changes. It's simple enough to run 
# sudo /etc/init.d/minidlna force-reload
# when new content is added.
inotify=no

一旦完成編輯,重啓minidlna以加載新配置:

sudo /etc/init.d/minidlna force-reload

Minidlna能夠爲你的(de)設備支持的(de)電影(yǐng)提供電影(yǐng)海報縮略圖。這(zhè)讓我能夠更方便地在幾十個(gè)電影(yǐng)文件中滾屏查找我想要的(de)那個(gè)電影(yǐng)。我發現每個(gè)電影(yǐng)一個(gè)目錄是最兼容的(de)文件布局,隻包含影(yǐng)片文件和(hé)縮略圖,圖像命名爲“Cover.jpg”。使用(yòng)像”MovieName.m4v”和(hé)”MovieName.jpg”的(de)格式在PS3上工作的(de)很好,但它不太适合VLC(除非你能讓VLCuPNP插件首先查找服務器的(de)話(huà))。

通(tōng)過PS3,你可(kě)以通(tōng)過轉到在XMB欄上的(de)”Video”測試連通(tōng)性。當視頻(pín)列表向下(xià)翻頁時(shí),你以前設置的(de)”friendly_name”應該是可(kě)見的(de),測試确保Minidlna是通(tōng)過浏覽器轉到http://192.168.***.***:8200/。

非DLNA設備的(de)多(duō)媒體

當你讓DNLA與你的(de)一些設備一起工作時(shí),你可(kě)能會發現有些設備并不适合它,所以多(duō)媒體計劃B是個(gè)好主意。Nginx網站服務器有一個(gè)MP4插件嘗試在舊(jiù)式的(de)HTTP連接上改善流媒體傳輸,但是浏覽器回放的(de)性能差别很大(dà),在一部電影(yǐng)裏快(kuài)進也(yě)一直不工作。看起來(lái)多(duō)媒體共享或非 DLNA 設備的(de)最低共同特性是使用(yòng)傳統Samba共享的(de)訪客隻讀訪問。

這(zhè)是/etc/samba/smb.conf的(de)部分(fēn)示例:

[dlna] 
path=/storage/dlna 
read only=yes 
browsable=yes 
public=yes

定義了(le)共享設置後重啓Samba(命令:sudo /etc/init.d/samba restart ),你可(kě)以開始測試你的(de)客戶端。

我用(yòng)一個(gè)混合的(de)編碼m4v視頻(pín)文件測試了(le)以下(xià)客戶端:

  • Android 4.0.4手機:”ES File Explorer”與”ES Media Player”;
  • Android 4.1.2平闆電腦(nǎo):”ES File Explorer”與”ES Media Player”;
  • Linux設備:自動挂載//192.168.1.10/dlna,然後使用(yòng)VLC或MPlayer;
  • Windows:挂載//192.168.1.10:/dlna,然後使用(yòng)VLC;

所有設備都能立即開始播放和(hé)快(kuài)進,沒有延遲。

打印服務器

RPi運行CUPS相當不錯,所以它容易共享一個(gè)較舊(jiù)的(de)沒有本地網絡接口的(de)打印機。

安裝你的(de)打印機所需的(de)CUPS和(hé)任何軟件包。我需要hplip-cups,因爲我有一個(gè)HP噴墨打印機:

sudo apt-get install cups hplip-cups

更新“Listen”行和(hé)增加 Allow @LOCAL 指令,如下(xià)所示(你可(kě)以使用(yòng)其他(tā)機器在你的(de)LAN上去管理(lǐ)CUPS):

======/etc/cups/cupsd.conf======
#Listen localhost:631  #Comment this out
Listen 192.168.1.10:631 #Add this line
...

  Order allow,deny 
  Allow @LOCAL 

# Restrict access to the admin pages... 

  Order allow,deny 
  Allow @LOCAL 

# Restrict access to configuration files... 

  AuthType Default 
  Require user @SYSTEM 
  Order allow,deny 
  Allow @LOCAL 

======/etc/cups/cupsd.conf======

添加你的(de)本地ID到lpadmin組就能管理(lǐ)CUPS:

sudo usermod -a -G lpadmin  YOURUSERIDHERE

重啓CUPS:

sudo /etc/init.d/cups restart

然後轉到http://192.168.***.***:631/并點擊 “Adding Printers and Classes”去設置你的(de)打印機。我的(de)打印機是自動發現的(de)USB設備,所以,我隻需點擊“share”就可(kě)以。同樣訪問https://192.168.***.***:631/admin,确保檢查“Shareprinters connected to this system(共享連接至這(zhè)個(gè)系統的(de)打印機)”。

完成後,你可(kě)以開始設置你的(de)客戶端。當我輸入主機名,我的(de)Linux客戶端就能夠自動發現打印機,并選擇正确的(de)驅動程序。在我的(de)Windows 7的(de)機器上,一旦我選擇“Network Printer(網絡打印機)”,我必須點擊“The printer that I want isn’t listed(我想要的(de)打印機未列出)”,選擇“Select a shared printer by name(通(tōng)過名稱選擇共享的(de)打印機)”,然後從CUPS網絡接口輸入URL:http://192.168.***.***:631/printers/HP_J4500。

結論:

用(yòng)最少的(de)額外的(de)硬件和(hé)配置,樹莓派是高(gāo)效、簡潔的(de)家用(yòng)服務器。它能夠花最小的(de)硬件費用(yòng)來(lái)爲你的(de)家庭環境帶來(lái)由Linux提供的(de)廣泛企業服務。


相關文章(zhāng)

上拉電阻和(hé)下(xià)拉電阻

上拉電阻和(hé)下(xià)拉電阻

在折騰Arduino或者樹莓派信号輸入的(de)時(shí)候,時(shí)常聽(tīng)到的(de)就是上拉電阻和(hé)下(xià)拉電阻,

查看全文

牛逼的(de)樹莓派dashboard

樹莓派安裝 Nginx + PHP7.3 + Pi Dashboard

查看全文

Linux 下(xià)使用(yòng) system

下(xià)面的(de)教程将介紹如何将命令或程序配置爲開機啓動時(shí)自動運行的(de)服務。完成配置之後,就

查看全文