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

2021-02-21 Linux

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

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

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)

我所使用的物品清單:

步驟 1: 啟動樹莓派

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

Pi Filler prompt

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

USB card reader

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

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

Raspberry Pi software configuration setup

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

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

Choose boot option

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

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

$ sudo reboot

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

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

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

Setting up a remote connection

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

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

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

Raspberry Pi desktop

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

靜態化本地 IP 地址

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

$ sudo ifconfig

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

$ netstat -nr

記下 destination 和 gateway/network。

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,防火牆,網際網路[5],可以幫助你更好地了解埠。

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

設置埠轉發的方式取決於你的路由器。 如果你有 Linksys 的話,Gabriel Ramirez 在 YouTbue 上有一個標題叫 如何讓你的 Apache Ubuntu 伺服器連到網際網路[7] 的視頻解釋了如何設置。 如果您沒有 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

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

作為一個獎勵選項,您可以保持到您的 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 伺服器連到網際網路[8],那麼你可以去看一下,作為過渡到第二個項目的教程。 它將向您展示項目背後的技術架構。 在我們的例子中,你使用的是樹莓派而不是 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

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

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

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

原文出自 Mitchell McLaughlin's Full-Stack Computer Projects[11]。

作者簡介:

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

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

作者:Mitchell McLaughlin [12] 譯者:chenxinlong 校對:jasminepeng

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

Cinlen Chan (chenxinlong)貢獻時間:2016-07-04 -> 2017-04-25

[1]: 兼容樹莓派的 SD 卡 - http://elinux.org/RPi_SD_cards

[2]: Raspbian Jessie - https://www.raspberrypi.org/downloads/raspbian/

[3]: Pi Filler - http://ivanx.com/raspberrypi/

[4]: 下載 Pi Filer 1.3 - http://ivanx.com/raspberrypi/files/PiFiller.zip

[5]: 什麼是 TCP/IP,埠,路由,Intranet,防火牆,網際網路 - https://www.youtube.com/watch?v=iskxw6T1Wb8

[6]: 65000個以上的埠 - https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers

[7]: 如何讓你的 Apache Ubuntu 伺服器連到網際網路 - https://www.youtube.com/watch?v=i1vB7JnPvuE#t=07m08s

[8]: 如何讓你的 Apache Ubuntu 伺服器連到網際網路 - https://www.youtube.com/watch?v=i1vB7JnPvuE#t=07m08s

[9]: 下載並運行 PuTTY - http://www.chiark.greenend.org.uk/%7Esgtatham/putty/download.html

[10]: Microsoft Remote Desktop - https://www.microsoft.com/en-us/store/apps/microsoft-remote-desktop/9wzdncrfj3ps

[11]: Mitchell McLaughlin's Full-Stack Computer Projects - https://mitchellmclaughlin.com/server.html

[12]: Mitchell McLaughlin - https://opensource.com/users/mitchm

相關焦點

  • 如何用樹莓派搭建個人伺服器(含免費連結)
    本文會介紹如何在樹莓派上安裝 Git、Node.js、Rust 和 Docker,創建個人開發伺服器。最便宜的樹莓派版本只需 5 美金。 點擊免費贏取價值 25 美金的樹莓派套件。樹莓派個頭很小,卻是個強大的計算機。
  • 如何DIY樹莓派伺服器?
    文/張程作為一名開發人員,我有時候想在外網寫一些腳本或者小程序,這就需要一臺自己的伺服器。剛開始我是在某雲上租用了一臺雲伺服器,但是特惠到期後續費需要一年上千元,成本較高,於是我便決定搭建一臺自己的伺服器。
  • 《樹莓派4B家庭伺服器搭建指南》第四期:用樹莓派搭建公網個人下載平臺aria2-pro,推薦6個優質種子資源站
    zhaoolee就想搭個人下載站,趁著今年國慶時間充裕,zhaoolee把下載站搭建到了樹莓派上,並對公網開放;在任何地點,zhaoolee只需通過網頁提交下載任務,家中的樹莓派就會自動把zhaoolee需要的資源,日夜不間斷地下載到zhaoolee的硬碟裡~ 本文是詳細的搭建步驟, 文末提供6個風評極好的優質種子站~(本文是《樹莓派4B家庭伺服器搭建指南
  • 《樹莓派4B家庭伺服器搭建指南》
    前段時間我買了一塊8GB內存的樹莓派4B,接了個USB無線網卡當軟路由 為樹莓派4B安裝OpenWrt鏡像打造普通wifi轉魔法wifi的便攜路由器 https://www.v2fy.com/p/2021-07-04-openwrt-4b-1625383754000/, 但後面又感覺8GB的樹莓派當軟路由很浪費,於是這次把樹莓派4B改裝成一個公網可訪問的伺服器
  • 用樹莓派搭建公網個人下載平臺aria2-pro,推薦6個優質種子資源站
    zhaoolee就想搭個人下載站,趁著今年國慶時間充裕,zhaoolee把下載站搭建到了樹莓派上,並對公網開放;在任何地點,zhaoolee只需通過網頁提交下載任務,家中的樹莓派就會自動把zhaoolee需要的資源,日夜不間斷地下載到zhaoolee的硬碟裡~ 本文是詳細的搭建步驟, 文末提供6個風評極好的優質種子站~(本文是《樹莓派4B家庭伺服器搭建指南
  • 樹莓派-搭建FTP伺服器
    備份文件通過SSH遠程連接到樹莓派,SSH連接可以參考上一篇文章:樹莓派-SSH遠程連接。/etc/apt/sources.list.d/raspi.list文件中為樹莓派的軟體源。替換Raspbian 源Raspbian源為樹莓派系統Raspbian 的安裝鏡像和軟體源,將原始的軟體源替換為科大源:sudo sed -i 's|raspbian.raspberrypi.org|mirrors.ustc.edu.cn/raspbian|g' /etc/apt/sources.list替換Raspberrypi
  • 用樹莓派搭建個人伺服器,永久運行網站
    Raspberry Pi(中文名為樹莓派,簡寫為 RPi,(或者 RasPi / RPI) 是為學習計算機編程教育而設計),只有信用卡大小的微型電腦,其系統基於 Linux。隨著 Windows 10 IoT 的發布,我們也將可以用上運行 Windows 的樹莓派。自問世以來,受眾多計算機發燒友和創客的追捧,曾經一「派」難求。
  • 菜鳥跟你一起學用樹莓派搭建NAS
    需求:用樹莓派搭建一套NAS系統,支持iPhone手機端同步照片。環境:Step 1 燒寫OMV樹莓派鏡像至TF卡Etcher非常傻瓜,以至於不用多說,用讀卡器把TF卡插PC上,然後把OMV樹莓派鏡像文件燒進去就行了。
  • 基於樹莓派搭建一個個人伺服器
    來自公眾號:SegmentFault,作者:彭小呆連結:https:
  • ARM搭建MC伺服器教程,適用於樹莓派
    ,本文使用華為雲的鯤鵬ARM伺服器,也適用於樹莓派(部分命令需要稍微改一下)。windows搭建MC伺服器教程:https://blog.zeruns.tech/archives/529.htmlX86 Linux搭建MC伺服器教程:https://blog.zeruns.tech/archives/584.html視頻教程(包括樹莓派):https://www.bilibili.com/video/BV1Xk4y1m7SE/
  • 用樹莓派搭建低成本VOIP伺服器與電話系統
    利用 Asterisk 來實現一個低成本的電話系統在研究了一些為小企業提供VoIP(Voice over Internet Protocol)和IP電話服務,包括支持新趨勢 UC(統一通信)的技術解決方案之後,我個人認為用樹莓派提供一個非常低成本的解決方案是完全可行的
  • 用樹莓派搭建一個私人社交網絡 | Linux 中國
    儘管社交網絡創建了複雜的隱私策略來保護用戶的信息,但如果你不想自己的信息被洩露,最好的辦法還是把數據保存在自己的伺服器上。一個樹莓派 — 多才多藝的 Raspbian Lite 版本就可以讓你搭建很多有用的家庭服務(參照我的文章樹莓派項目)。通過搜索開源軟體你就可以實現一些令人痴迷的功能,你也可以用這個神奇的設備來感受那些功能。其中一個有趣的嘗試就是在你的樹莓派上安裝 OSSN。
  • 樹莓派搭建Homebridge 組件家庭控制中心
    硬體設備:樹莓派3B、ESP8266、ws2812燈帶、繼電器;軟體部分:homebrigde伺服器、mqtt伺服器、arduino IDE基本功能:使用Iphone語音或軟體控制燈帶、繼電器開關、檯燈。
  • 如何在樹莓派上安裝 Ubuntu 伺服器? | Linux 中國
    樹莓派是最著名的單板計算機。最初,樹莓派項目的範圍旨在促進學校和發展中國家的計算機基礎科學的教學。它的低成本、便攜性和極低的功耗,使得它的受歡迎程度遠遠超過預期。從氣象站到家庭自動化,玩家們用樹莓派搭建了許多酷炫的項目。第四代樹莓派具備了普通桌上型電腦的功能和處理能力。但本文並不是要介紹如何使用樹莓派作為桌面。
  • 樹莓派自建 NAS 雲盤之——樹莓派搭建網絡存儲盤 | Linux 中國
    本系列第二篇文章將討論數據備份策略、如何添加定時備份數據任務。最後一篇文章中我們將會安裝 Nextcloud 軟體,用戶通過 Nextcloud 提供的 web 界面可以方便的離線或在線訪問數據。本系列教程最終搭建的 NAS 雲盤支持多用戶操作、文件共享等功能,所以你可以通過它方便的分享數據,比如說你可以發送一個加密連結,跟朋友分享你的照片等等。
  • 樹莓派搭建我的世界伺服器教程
    X86 Linux搭建MC伺服器教程:https://blog.zeruns.tech/archives/584.htmlARM搭建MC伺服器教程,適用於樹莓派:https://blog.zeruns.tech/archives/585.htmlLinux搭建 我的世界(MC) 基巖版伺服器:https://blog.zeruns.tech/archives/588.html
  • 最簡單粗暴的樹莓派搭建個人網站教程
    對很多初學者而言在樹莓派或伺服器上搭建網站是一件非常頭疼的事,不僅要在linux上運行命令行,還需要安裝各種環境,稍微出點問題就可能前功盡棄。
  • 樹莓派+esp8266搭建物聯網(1):樹莓派搭建物聯網伺服器
    ———————————————項目背景:有很長一段時間沒有接觸物聯網了,最近收拾房間,想起我手裡有塊樹莓派還是閒置著的,於是計劃用簡單的方法搭建一套物聯網套件。———————————————​Domoticz簡介:      首先要搭建的就是物聯網伺服器,顧名思義,物聯網伺服器就是用於為物聯網產品提供一些特定服務的伺服器。      了解物聯網的人都知道現在開放第三方接入的物聯網平臺是非常多的,例如易微聯、阿里雲、塗鴉和點燈科技等。
  • 極客學院 | 在樹莓派上搭建私有雲存儲
    最簡單和穩妥的解決辦法當然還是購買群暉這樣高性能、多功能的NAS,但動輒幾千元的售價還是讓許多人望而卻步,市面上的私有雲盤軟體有諸如可道雲、Nextcloud/ownCloud、Seafile等,這裡IT之家來介紹如何用一塊樹莓派3B開發板搭建私有雲存儲。
  • 一個U盤大小的樹莓派,搭建你自己的網站
    但其實還有另一種選擇,就是自己弄一個區域網的伺服器。今天就給大家分享一下,如果做一個可以帶著走的網站伺服器。Raspberry Pi(中文名為樹莓派,簡寫為 RPi,(或者 RasPi / RPI) 是為學習計算機編程教育而設計),只有信用卡大小的微型電腦,其系統基於 Linux。隨著 Windows 10 IoT 的發布,我們也將可以用上運行 Windows 的樹莓派。