當前位置: 妍妍網 > 碼農

如何搭建一台永久執行的個人伺服器?

2024-06-11碼農

掃碼關註 後端架構師 」,選擇 星標 公眾號

重磅幹貨,第一時間送達!

責編:架構君 | 來源:Linux就該這樣學

連結: segmentfault.com/a/1190000021143144

上一篇好文:

正文

大家好,我是後端架構師。

一、前言

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

二、樹莓派是什麽?

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=1
    network={
    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之間。

    你還有什麽想要補充的嗎?

    最後給大家推薦一個ChatGPT 4.0國內網站,是我們團隊一直在使用的,我們對接是OpenAI官網的帳號,給大家打造了一個一模一樣ChatGPT,很多粉絲朋友現在也都透過我拿這種號,價格不貴,關鍵還有售後。

    一句話說明:用官方一半價格的錢,一句話說明:用跟官方 ChatGPT4.0 一模一樣功能,無需魔法,無視封號,不必擔心次數不夠。

    最大優勢:可實作會話隔離!突破限制:官方限制每個帳號三小時可使用40次4.0本網站可實作次數上限之後,手動切換下一個未使用的帳號【相當於一個4.0帳號,同享受一百個帳號輪換使用許可權】

    最後,再次推薦下我們的AI星

    為了跟上AI時代我幹了一件事兒,我建立了一個知識星球社群:ChartGPT與副業。想帶著大家一起探索 ChatGPT和新的AI時代

    有很多小夥伴搞不定ChatGPT帳號,於是我們決定,凡是這三天之內加入ChatPGT的小夥伴,我們直接送一個正常可用的永久ChatGPT獨立帳戶。

    不光是增長速度最快,我們的星球品質也絕對經得起考驗,短短一個月時間,我們的課程團隊釋出了 8個專欄、18個副業計畫

    簡單說下這個星球能給大家提供什麽:

    1、不斷分享如何使用ChatGPT來完成各種任務,讓你更高效地使用ChatGPT,以及副業思考、變現思路、創業案例、落地案例分享。

    2、分享ChatGPT的使用方法、最新資訊、商業價值。

    3、探討未來關於ChatGPT的機遇,共同成長。

    4、幫助大家解決ChatGPT遇到的問題。

    5、 提供一整年的售後服務,一起搞副業

    星球福利:

    1、加入星球4天後,就送ChatGPT獨立帳號。

    2、邀請你加入ChatGPT會員交流群。

    3、贈送一份完整的ChatGPT手冊和66個ChatGPT副業賺錢手冊。

    其它福利還在籌劃中... 不過,我給你大家保證,加入星球後,收獲的價值會遠遠大於今天加入的門票費用 !

    本星球第一期原價 399 ,目前屬於試營運,早鳥價 149 ,每超過50人漲價10元,星球馬上要來一波大的漲價,如果你還在猶豫,可能最後就要以 更高價格加入了 。。

    早就是優勢。 建議大家盡早以便宜的價格加入!

    歡迎有需要的同學試試,如果本文對您有幫助,也請幫忙點個 贊 + 在看 啦!❤️

    在 還有更多優質計畫系統學習資源,歡迎分享給其他同學吧!

    PS:如果覺得我的分享不錯,歡迎大家隨手點贊、轉發、在看。

    最後給讀者整理了一份BAT大廠面試真題,需要的可掃碼加微信備註:「面試」獲取。

    版權申明:內容來源網路,版權歸原創者所有。除非無法確認,我們都會標明作者及出處,如有侵權煩請告知,我們會立即刪除並表示歉意。謝謝!

    END

    最近面試BAT,整理一份面試資料【Java面試BAT通關手冊】,覆蓋了Java核心技術、JVM、Java並行、SSM、微服務、資料庫、數據結構等等。在這裏,我為大家準備了一份2021年最新最全BAT等大廠Java面試經驗總結。

    別找了,想獲取史上最全的Java大廠面試題學習資料

    掃下方二維碼回復面試就好了

    歷史好文:

    掃碼關註後端架構師」,選擇星標公眾號

    重磅幹貨,第一時間送達

    ,你在看嗎?