樹莓派進階學習的五個建議
從SSH到埠轉發,這些先進的技術將讓你的樹莓派開發更簡單。
當你可以在命令行輸入命令時,你就不再是一個新手在做一些新手的設置了。雖然進度不快,但是你的確正在通過你的方式去學習使用這物超所值的、只有信用卡大小的計算機去滿足一些DIY想法,這就是樹莓派。
然而,從基礎跨越到中級還是存在較大距離。當你從「設置你的派」的教程轉而學習「創建一個媒體伺服器」時,項目開始前的需求就會有一點點挑戰。許多中級的Pi教程,包括ReadWrite的一些文章,都會假設你已經對樹莓派設置好了一些東西。
並非每一個項目都需要找個教程里的所有建議,但是知道這些步驟可以使項目更順利地貼合需求。
當你準備脫離小白行列時,做一些樹莓派教程的預先準備工作對你非常有用。
1) 使用SSH登錄
SSH意思是Secure Shell,它是一種加密網路協議,用於安全地在計算機與樹莓派之間傳輸你的數據。項目中也許需要你通過你的計算機的命令行控制樹莓派,而不是通過給樹莓派連接顯示器和鍵盤來控制。
現在SSH已經預先安裝在樹莓派系統 Raspbian 中了,所以如果你安裝的是最新版本或較新版本的樹莓派都是支持SSH使用的。
要使用SSH,第一,你需要知道你的樹莓派的IP地址,在你的樹莓派中輸入以下命令:
sudo ifconfig
會顯示出三個段落。你的IP地址將會在第一段或者第三段顯示,這主要看你的樹莓派是通過線纜還是通過WIFI適配器連接網路的。如果是通過線纜連接,那請查看第一段,在「eth0」那行開始顯示。如果是通過wifi鏈接,將在第三段「wlan0」開頭的地方顯示。
無論通過哪種方式,你將會看到以「inet addr」開頭後面跟著像192.168.2.2這樣類型的IP地址,這是我們在這篇文章中經常引用到的一種默認IP地址格式。
現在你有一個可以連接樹莓派與你的電腦的IP地址了,如果你使用的是Mac,你已經有了內置的SSH,啟動你的終端應用並輸入:
ssh pi@192.168.2.2
連接之後將會要求輸入密碼,默認情況下,密碼一般是「respberry」.如果你修改了默認密碼,請輸入你的新密碼。這樣,您將登入了樹莓派系統。
如果你在一台PC,還需要附加的一個步驟。
下載並運行PuTTY或者其它支持Windows系統的SSH客戶端。輸入你的IP地址在如上截圖中的輸入框中。保持默認埠為22不變。然後安心回車,PuTTY將會提示你輸入用戶名和密碼。輸入之後,就可以開始在你的樹莓派里遠程工作了。
2) 使用遠程桌面連接到你的樹莓派
使用SSH去從命令行遠程控制你的Pi是極好的,但是如果你想通過圖形界面去管理你的Pi怎麼辦呢?幸運的是MAC和PC都已經內建了這種方式。
在你的樹莓派中的命令行(是的,你可以通過SSH來操作),輸入:
sudo apt-get install xrdp
xdrp是一種在可以在後台運行的計算機守護進程,並支持Mac和PC上的微軟遠程桌面客戶端。當樹莓派中安裝好xrdp之後,你的MAC或者PC就可以通過客戶端登錄到樹莓派中了。
找到你的電腦中一個叫遠程桌面的客戶端。它本身並不是隱藏起來的,但沒有放到應用程序的文件夾中。
出現上述提示時輸入你的IP地址。接下來會彈出xrdp窗口,提示你輸入用戶名和密碼。
如果進展順利,你的樹莓派桌面就會在你的電腦屏幕上的窗口裡面顯示出來了。
3) 給你的樹莓派設置一個家庭網路的靜態地址
在之前(第一步)找到的樹莓派的IP地址現在是可以連接的,但是不能保證你的路由器會一直給你的樹莓派分配一個永久固定的IP地址。這意味著在你網段中的其它計算機無法知道樹莓派被分配了什麼IP地址。那麼如何來給樹莓派分配靜態的IP地址而不是每隔幾天就在樹莓派上執行「sudo ifconfig」命令,或者糟糕到每隔幾個小時一次?
顯然,我們要從「ifconfig」命令開始,所以輸入:
sudo ifconfig
拿出筆和紙做準備,記錄下面的三個IP地址。(#後面的代碼是注釋,實際不會顯示.):
inet addr: 192.168.2.2 # 樹莓派的當前IP地址
Bcast: 192.168.0.255 # 地址廣播範圍
Mask: 255.255.255.0 # 子網掩碼
此外,你還需要知道另外2個信息。請輸入以下命令獲取網關和目的地址(譯註:實際上我們只需要知道默認網關的IP就行了)。
netstat -nr
接下來,去查看你路由器上的配置。(如何進行這一步主要取決於你用什麼路由器,所以還是查看下說明書吧)找出你的設備通過DHCP設置了哪段ip地址。有些地址是不能使用的,因為DHCP協議中已經分配使用了。所以要選擇沒有被使用的,例如,192.168.2.2。你的路由器也許可以讓你保留一個未使用的IP地址,固定分配給像樹莓派這樣的本地設備。(如果你的路由器是Belkin,那大概就是這樣)如果是這樣的,那就不用看下面的部分了。
如果不能固定分配,你需要讓樹莓派知道它的新的ip地址。我們通過nano編輯器來編輯樹莓派中相關的文件。
sudo nano /etc/network/interfaces
將「iface eth0 inet dhcp」這一段修改成「iface eth0 inet static」,也就是將動態獲取IP修改成靜態IP。
接下來輸入如下,將下列X取代成你之前所記下來的地址信息。最上面的地址是我們將要把DHCP中沒有使用的IP地址分配作為樹莓派的靜態IP地址。
address 192.168.2.2
netmask XXX.XXX.XXX.X
network XXX.XXX.X.X
broadcast XXX.XXX.X.X
gateway XXX.XXX.X.X
使用「sudo reboot」的命令重啟樹莓派系統後,在命令行再次輸入「ifconfig」,我們剛剛新設置的靜態IP設置就會呈現。
4) 埠轉發至樹莓派
一些樹莓派程序可能需要你轉發一個特定的網路埠號到你的樹莓派。埠是信息在互聯網傳送的虛擬路徑。有時候你需要轉發一個埠來使像樹莓派這樣計算機可以被互聯網訪問,即使它在路由器後面。這種情況有點像撥電話分機號一樣。
埠轉發能夠用於像樹莓派網頁伺服器,樹莓派的VOIP或者簡單的點對點下載。有超過65000個埠可供選擇,你可以分配不同的埠給不同的樹莓派項目用來進行通信。
某些埠默認情況下代表著特定的應用。例如80埠默認為HTML頁面,21埠默認代表FTP傳輸,1194埠默認用於設置VPN伺服器。所以大多數情況下,你應該選擇默認的埠提供服務。
設置埠轉發的方法完全取決於你的路由器,於是很難創建一個固定的關於設置埠轉發教程。你只能閱讀你路由器的說明書來定義埠和轉發了。
下面鏈接了幾個主流路由器廠商的埠轉發教程。
5) 在互聯網上給你的樹莓派設置靜態地址
再次聲明,如果你的運營商給了你一個靜態IP,你就不需要看這個部分了。
我們已經給樹莓派設置了一個靜態的內部IP地址,這意味著在你的內部網路中總是能夠連到你的樹莓派。但是如果程序需要樹莓派連接到互聯網呢?如果你想要在你的樹莓派上搭建一個Web伺服器,在你網路之外的人們需要知道你的樹莓派在哪裡,這意味著我們要來設置一個像靜態IP的公開地址。
我之所以說「看起來像」是因為我們已經設置了一個偽靜態IP地址。通常,你所在的運營商將會不斷變換分配給你的地址。所以每一次有人連接到你的樹莓派時,我們就要寫個腳本說:「樹莓派已經搬家了,讓我帶你去新的地址吧! 」
我們可以通過DDNS(即動態DNS)來實現,它實時維護名字解析,並通過 DDClient 程序通知DDNS修改指向到你的樹莓派。
首先需要註冊一個類似DNS Dynamic的動態主機服務。根據指示並創建新的名稱伺服器類似Yourserver.dnsdynamic.com.
接下來進入樹莓派中的命令行,使用下面命令來安裝DDNS客戶端:
sudo apt-get install ddclient
我們需要編輯DDNS客戶端配置,使用新的名稱伺服器:
sudo nano /etc/ddclient/ddclient.conf
每種服務配置都會有略微的不同,但是DDNS的網站會告訴你需要在配置文件中修改的內容。一個標準的DDNS配置,舉個栗子,如 DDNS配置,可以直接複製粘貼。
你的運營商不會因為你的這個文件而停止更新給你分配的IP地址,因此我們在腳本的最前面設置一個守護進程執行的頻度,以確保及時檢查IP地址是否已經更改。
daemon=600
# check every 600 seconds
這裡設置的是每10分鐘檢查一次,這是一個不錯的選擇。如果你設置成每秒鐘檢查一次,你的動態伺服器恐怕不幹,因為這樣對它來說是一種轟炸。記得按下ctrl+x保存並退出配置文件。
接下來,輸入:
ddclient
如上輸入程序的名稱就可以運行了。當你的樹莓派開著的時候就會持續運行了。如果你重啟樹莓派,鍵入 「ddclient」就會重新開始運行了。
現在你的樹莓派已經被裝修一番,可以迎接更高級的教程了,請從中獲得更多樂趣吧!
關於作者:
本文的美女作者:Lauren Orsini是一個專業記者、業餘程序員和全職宅女,她住在飽受交通之苦的Arlington, VA。
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive