Linux中國

如何用樹莓派搭建個人 web 伺服器

個人 Web 伺服器即 「雲」,只不過是你擁有和控制它,而不是一個大型公司。

擁有一個自己的雲有很多好處,包括可定製、免費存儲、免費的互聯網服務、通往開源軟體之路、高安全性、完全控制您的內容、快速更改的能力、實驗代碼的地方等等。 這些好處大部分是無法估量的,但在財務上,這些好處可以為您每個月節省超過 100 美元。

![Building your own web server with Raspberry Pi](/data/attachment/album/201705/14/204012so6u3n67lb7ilin6.png "Building your own web server with Raspberry Pi")

我本可以選擇 AWS ,但我更喜歡完全自由且安全性可控,並且我可以學一下這些東西是如何搭建的。

  • 私有 Web 託管:而非 BlueHost 或 DreamHost
  • 雲存儲:而非 Dropbox、Box、Google Drive、Microsoft Azure、iCloud 或是 AWS
  • 自主部署安全
  • HTTPS:Let』s Encrypt
  • 分析: Google
  • OpenVPN:不需要專有互聯網連接(預計每個月花費 $7)

我所使用的物品清單:

  • 樹莓派 3 代 Model B
  • MicroSD 卡(推薦使用 32 GB, 兼容樹莓派的 SD 卡
  • USB microSD 卡讀卡器
  • 乙太網絡線
  • 連接上 Wi-Fi 的路由器
  • 樹莓派盒子
  • 亞馬遜倍思的 MicroUSB 數據線
  • 蘋果的充電器
  • USB 滑鼠
  • USB 鍵盤
  • HDMI 線材
  • 顯示器 (支持接入 HDMI)
  • MacBook Pro

步驟 1: 啟動樹莓派

下載最新發布的 Raspbian (樹莓派的操作系統)。 Raspbian Jessie 的 ZIP 包就可以用 [腳註 1]。解壓縮或提取下載的文件然後把它拷貝到 SD 卡里。使用 Pi Filler 可以讓這些過程變得更簡單。下載 Pi Filer 1.3 或最新的版本。解壓或提取下載文件之後打開它,你應該會看到這樣的提示:

![Pi Filler prompt](/data/attachment/album/201705/14/204012phzyrqh3eqnbqw34.png "Pi Filler prompt")

確保 USB 讀卡器這時還沒有插上。如果已經插上了那就先彈出。點 「Continue」 繼續下一步。你會看到一個讓你選擇文件的界面,選擇你之前解壓縮後的樹莓派系統文件。然後你會看到另一個提示,如圖所示:

![USB card reader prompt](/data/attachment/album/201705/14/204013d47aa6nd8y1e7z7w.png "USB card reader")

把 MicroSD 卡(推薦 32 GB ,至少 16GB)插入到 USB MicroSD 卡讀卡器里。然後把 USB 讀卡器接入到你的電腦里。你可以把你的 SD 卡重命名為 「Raspberry」 以區別其他設備。然後點擊 「Continue」。請先確保你的 SD 卡是空的,因為 Pi Filler 會在運行時 擦除 所有事先存在 SD 卡里的內容。如果你要備份卡里的內容,那你最好就馬上備份。當你點 「Continue」 的時候,Raspbian OS 就會被寫入到 SD 卡里。這個過程大概會花費一到三分鐘左右。當寫入完成後,推出 USB 讀卡器,把 SD 卡拔出來插入到樹莓派的 SD 卡槽里。把電源線接上,給樹莓派供電。這時樹莓派就會自己啟動。樹莓派的默認登錄賬戶信息是:

  • 用戶名: pi
  • 密碼:raspberry

當樹莓派首次啟動完成時,會跳出一個標題為 「 設置選項 Setup Options 」 的配置界面,就像下面的圖片一樣 [腳註 2]:

![Raspberry Pi software configuration setup](/data/attachment/album/201705/14/204013s38ype334yi3er3c.png "Raspberry Pi software configuration setup")

選擇 「 擴展文件系統 Expand Filesystem 」 這一選項並回車 [腳註 3]。 同時,我還推薦選擇第二個選項 「 修改密碼 Change User Password 」。這對保證安全性來說尤為重要。它還能個性化你的樹莓派。

在選項列表中選擇第三項 「 啟用引導到桌面 Enable Boot To Desktop/Scratch 」 並回車。這時會跳到另一個標題為 「 選擇引導選項 Choose boot option 」 的界面,就像下面這張圖這樣:

![Choose boot option](/data/attachment/album/201705/14/204013iewsecnggt11zayy.png "Choose boot option")

在這個界面選擇第二個選項 「 以用戶『pi』登錄圖形化桌面 Desktop log in as user 'pi' at the graphical desktop 」 並回車 [腳註 4]。完成這個操作之後會回到之前的 「 設置選項 Setup Options 」 界面。如果沒有回到之前的界面的話就選擇當前界面底部的 「OK」 按鈕並回車。

當這些操作都完成之後,選擇當前界面底部的 「Finish」 按鈕並回車,這時它就會自動重啟。如果沒有自動重啟的話,就在終端里使用如下命令來重啟。

$ sudo reboot

接上一步的重啟,如果所有步驟都順利進行的話,你會進入到類似下面這樣桌面環境中。

![Raspberry Pi desktop](/data/attachment/album/201705/14/204014p0fcbmfh10omfhup.png "Raspberry Pi desktop")

當你進入了桌面之後,在終端中執行如下命令來更新樹莓派的固件。

$ sudo apt-get update
$ sudo apt-get upgrade-y
$ sudo apt-get dist-upgrade -y
$ sudo rpi-update

這些操作可能會花費幾分鐘時間。完成之後,現在運行著的樹莓派就是最新的了。

步驟 2: 配置樹莓派

SSH 指的是 Secure Shell,是一種加密網路協議,可讓你在計算機和樹莓派之間安全地傳輸數據。 你可以從 Mac 的命令行控制你的樹莓派,而無需顯示器或鍵盤。

要使用 SSH,首先需要你的樹莓派的 IP 地址。 打開終端並輸入:

$ sudo ifconfig

如果你在使用乙太網,看 eth0 部分。如果你在使用 Wi-Fi, 看 wlan0 部分。

查找 inet addr,後跟一個 IP 地址,如 192.168.1.115,這是本篇文章中使用的默認 IP。

有了這個地址,在終端中輸入 :

$ ssh pi@192.168.1.115

對於 PC 上的 SSH,請參見 [腳註 5]。

出現提示時輸入默認密碼 raspberry,除非你之前更改過密碼。

現在你已經通過 SSH 登錄成功。

遠程桌面

使用 GUI(圖形用戶界面)有時比命令行更容易。 在樹莓派的命令行(使用 SSH)上鍵入:

$ sudo apt-get install xrdp

xrdp 支持 Mac 和 PC 的 Microsoft Remote Desktop 客戶端。

在 Mac 上,在 App store 中搜索 「Microsoft Remote Desktop」。 下載它。 (對於 PC,請參見 [腳註 6]。)

安裝完成之後,在你的 Mac 中搜索一個叫 「Microsoft Remote Desktop」 的應用並打開它,你會看到 :

![Microsoft Remote Desktop](/data/attachment/album/201705/14/204014aowhpgmvvhpnopou.png "Microsoft Remote Desktop")

點擊 「New」 新建一個遠程連接,在空白處填寫如下配置。

![Setting up a remote connection](/data/attachment/album/201705/14/204015fcjjci9jx2pr6cip.png "Setting up a remote connection")

關閉 「New」 窗口就會自動保存。

你現在應該看到 「My Desktop」 下列出的遠程連接。 雙擊它。

簡單載入後,你應該在屏幕上的窗口中看到你的樹莓派桌面,如下所示:

![Raspberry Pi desktop](/data/attachment/album/201705/14/204015wq3r020ryrqrk0mu.png "Raspberry Pi desktop")

好了,現在你不需要額外的滑鼠、鍵盤或顯示器就能控制你的樹莓派。這是一個更為輕量級的配置。

靜態化本地 IP 地址

有時候你的本地 IP 地址 192.168.1.115 會發生改變。我們需要讓這個 IP 地址靜態化。輸入:

$ sudo ifconfig

eth0 部分或 wlan0 部分,記下 inet addr(樹莓派當前 IP),bcast(廣播 IP 範圍)和 mask(子網掩碼地址)。 然後輸入:

$ netstat -nr

記下 destinationgateway/network

![Setting up a local IP address](/data/attachment/album/201705/14/204015it2dvpj7cig07pi2.png "Setting up a local IP address")

大概應該是這樣子的:

net address 192.168.1.115
bcast 192.168.1.255
mask 255.255.255.0
gateway 192.168.1.1
network 192.168.1.1
destination 192.168.1.0

有了這些信息,你可以很簡單地設置一個靜態 IP。輸入:

$ sudo nano /etc/dhcpcd.conf

不要去動 /etc/network/interfaces

剩下要做的就是把這些內容追加到這個文件的底部,把 IP 換成你想要的 IP 地址。

interface eth0
static ip_address=192.168.1.115
static routers=192.168.1.1
static domain_name_servers=192.168.1.1

一旦你設置了靜態內部 IP 地址,這時需要通過如下命令重啟你的樹莓派 :

$ sudo reboot

重啟完成之後,在終端中輸入 :

$ sudo ifconfig

這時你就可以看到你的樹莓派上的新的靜態配置了。

靜態化全局 IP 地址

如果您的 ISP(互聯網服務提供商)已經給您一個靜態外部 IP 地址,您可以跳到埠轉發部分。 如果沒有,請繼續閱讀。

你已經設置了 SSH、遠程桌面和靜態內部 IP 地址,因此現在本地網路中的計算機將會知道在哪裡可以找到你的樹莓派。 但是你仍然無法在本地 Wi-Fi 網路外部訪問你的樹莓派。 你需要樹莓派可以從互聯網上的任何地方公開訪問。這需要靜態的外部 IP 地址 [腳註 7]。

聯繫您的 ISP 並請求靜態的外部(有時稱為靜態全局)IP 地址可能會是一個非常敏感的過程。 ISP 擁有決策權,所以我會非常小心處理。 他們可能拒絕你的的靜態外部 IP 地址請求。 如果他們拒絕了你的請求,你不要怪罪於他們,因為這種類型的請求有法律和操作風險。 他們特別不希望客戶運行中型或大型互聯網服務。 他們可能會明確地詢問為什麼需要一個靜態的外部 IP 地址。 最好說實話,告訴他們你打算主辦一個低流量的個人網站或類似的小型非營利互聯網服務。 如果一切順利,他們應該會建立一個工單,並在一兩個星期內給你打電話。

埠轉發

這個新獲得的 ISP 分配的靜態全局 IP 地址是用於訪問路由器。 樹莓派現在仍然無法訪問。 你需要設置埠轉發才能訪問樹莓派。

埠是信息在互聯網上傳播的虛擬途徑。 你有時需要轉發埠,以使計算機像樹莓派一樣可以訪問 Internet,因為它位於網路路由器後面。 VollmilchTV 專欄在 YouTube 上的一個視頻,名字是什麼是 TCP/IP,埠,路由,Intranet,防火牆,互聯網,可以幫助你更好地了解埠。

埠轉發可用於像 樹莓派 Web 伺服器或 VoIP 或點對點下載的應用程序。 有 65000個以上的埠可供選擇,因此你可以為你構建的每個 Internet 應用程序分配一個不同的埠。

設置埠轉發的方式取決於你的路由器。 如果你有 Linksys 的話,Gabriel Ramirez 在 YouTbue 上有一個標題叫 如何讓你的 Apache Ubuntu 伺服器連到互聯網 的視頻解釋了如何設置。 如果您沒有 Linksys,請閱讀路由器附帶的文檔,以便自定義和定義要轉發的埠。

你需要轉發 SSH 以及遠程桌面埠。

如果你認為你已經過配置埠轉發了,輸入下面的命令以查看它是否正在通過 SSH 工作:

$ ssh pi@your_global_ip_address

它應該會提示你輸入密碼。

檢查埠轉發是否也適用於遠程桌面。 打開 Microsoft Remote Desktop。 你之前的的遠程連接設置應該已經保存了,但需要使用靜態的外部 IP 地址(例如 195.198.227.116)來更新 「PC 名稱」 欄位,而不是靜態的內部地址(例如 192.168.1.115)。

現在,嘗試通過遠程桌面連接。 它應該簡單地載入並顯示樹莓派的桌面。

![Raspberry Pi desktop](/data/attachment/album/201705/14/204016f1dj2m2z47da0271.png "Raspberry Pi desktop")

好了, 樹莓派現在可以從互聯網上訪問了,並且已經準備好進行高級項目了。

作為一個獎勵選項,您可以保持到您的 Pi 的兩個遠程連接。 一個通過互聯網,另一個通過 LAN(區域網)。很容易設置。在 Microsoft Remote Desktop 中,保留一個稱為 「Pi Internet」 的遠程連接,另一個稱為 「Pi Local」。 將 Pi Internet 的 「PC 名稱」 配置為靜態外部 IP 地址,例如 195.198.227.116。 將 Pi Local 的 「PC 名稱」 配置為靜態內部 IP 地址,例如 192.168.1.115。 現在,您可以選擇在全局或本地連接。

如果你還沒有看過由 Gabriel Ramirez 發布的 如何讓你的 Apache Ubuntu 伺服器連到互聯網,那麼你可以去看一下,作為過渡到第二個項目的教程。 它將向您展示項目背後的技術架構。 在我們的例子中,你使用的是樹莓派而不是 Ubuntu 伺服器。 動態 DNS 位於域名公司和您的路由器之間,這是 Ramirez 省略的部分。 除了這個微妙之處外,視頻是在整體上解釋系統的工作原理。 您可能會注意到本教程涵蓋了樹莓派設置和埠轉發,這是伺服器端或後端。 查看原始來源,涵蓋域名,動態 DNS,Jekyll(靜態 HTML 生成器)和 Apache(網路託管)的更高級項目,這是客戶端或前端。

腳註

[1] 我不建議從 NOOBS 操作系統開始。 我更喜歡從功能齊全的 Raspbian Jessie 操作系統開始。

[2] 如果沒有彈出 「Setup Options」,可以通過打開終端並執行該命令來始終找到它:

$ sudo-rasps-config

[3] 我們這樣做是為了將 SD 卡上存在的所有空間用作一個完整的分區。 所有這一切都是擴大操作系統以適應 SD 卡上的整個空間,然後可以將其用作樹莓派的存儲內存。

[4] 我們這樣做是因為我們想啟動進入熟悉的桌面環境。 如果我們不做這個步驟,樹莓派每次會進入到終端而不是 GUI 中。

[5]

![PuTTY configuration](/data/attachment/album/201705/14/204016l65kon533wpvqk5j.png "PuTTY configuration")

下載並運行 PuTTY 或 Windows 的其它 SSH 客戶端。 在該欄位中輸入你的 IP 地址,如上圖所示。 將默認埠保留為 22。 回車,PuTTY 將打開一個終端窗口,提示你輸入用戶名和密碼。 填寫然後開始在樹莓派上進行你的遠程工作。

[6] 如果尚未安裝,請下載 Microsoft Remote Desktop。 搜索您的計算機上的的 Microsoft Remote Desktop。 運行。 提示時輸入 IP 地址。 接下來,會彈出一個 xrdp 窗口,提示你輸入用戶名和密碼。

[7] 路由器具有動態分配的外部 IP 地址,所以在理論上,它可以從互聯網上暫時訪問,但是您需要 ISP 的幫助才能使其永久訪問。 如果不是這樣,你需要在每次使用時重新配置遠程連接。

原文出自 Mitchell McLaughlin's Full-Stack Computer Projects

作者簡介:

Mitchell McLaughlin - 我是一名開放網路的貢獻者和開發者。我感興趣的領域很廣泛,但我特別喜歡開源軟體/硬體,比特幣和編程。 我住在舊金山,我有過一些簡短的 GoPro 和 Oracle 工作經驗。

via: https://opensource.com/article/17/3/building-personal-web-server-raspberry-pi-3

作者:Mitchell McLaughlin 譯者:chenxinlong 校對:jasminepeng

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國