樹莓派搭建個人伺服器

来源:https://www.cnblogs.com/zhaopei/archive/2019/10/25/11736135.html
-Advertisement-
Play Games

前言 上一篇 "樹莓派也跑Docker和.NET Core" 有對樹莓派做簡單的介紹。包括系統的燒錄、基本的設置、docker的安裝、.net core的運行等。有人問我是不是一定要跑docker,答案肯定是否定的。我之所以用docker,完全是因為它的便利(帶環境)、對系統無污染和方便系統資源的查 ...


前言

上一篇樹莓派也跑Docker和.NET Core有對樹莓派做簡單的介紹。包括系統的燒錄、基本的設置、docker的安裝、.net core的運行等。有人問我是不是一定要跑docker,答案肯定是否定的。我之所以用docker,完全是因為它的便利(帶環境)、對系統無污染和方便系統資源的查看和控制。本篇文章繼續分享下我對樹莓派的使用。

docker安裝

mysql安裝

我說在樹莓派上跑mysql你還不信。

docker run --restart=always \
-p 3306:3306 \
--name mysql \
-v $PWD/conf:/etc/mysql/conf.d \
-v $PWD/logs:/logs \
-v $PWD/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=mysqlpassword \
-d hypriot/rpi-mysql:5.5
--restart=always                   #容器自啟動
3306                               #資料庫埠
-v $PWD/conf:/etc/mysql/conf.d     #配置文件掛載路徑
MYSQL_ROOT_PASSWORD=mysqlpassword  #資料庫密碼

redis安裝

docker run --name redis \
-p 6379:6379 \
-v $PWD/data/redis:/data \
-d arm32v7/redis:3.2.10 redis-server --appendonly yes

gogs安裝

有了.net core、mysql和redis,如果再能跑一個git伺服器那不就弔炸天了。是的,樹莓派安裝gogs毫無壓力。有了自己的代碼管理伺服器,再也不會因為GitHub訪問慢而煩惱了,也不會因為某Git的廣告而不爽了。

docker run --name=gogs -p 122:22 \
-p 1080:3000 \
-v /var/gogs:/data gogs/gogs-rpi

其中1080是瀏覽器訪問埠,你也可以映射到80。122是ssh提交代碼的埠。
註意:gogs需要依賴於mysql,第一次啟動會引導你填入資料庫相關信息。後面如果重啟了樹莓派,記得先啟動mysql,再啟動gogs,不然不能正常訪問。

內外穿透

上面有了應用,有了資料庫,還有了代碼管理伺服器,可我們樹莓派總歸是在一個區域網內。離開了這個網路上面說的那些功能好像就沒什麼用了。那我們有沒有辦法讓我們的樹莓派變成真正的伺服器呢,答案是肯定的。我相信大家剛接觸編程的時候,都幻想過自己寫的網站能直接給別人訪問。那個時候應該大多折騰過花生殼什麼的,那就是個內網穿透的技術。只是別人提供了免費的伺服器中轉了下,速度也是慢得感人。
今天我們來自己利用frp軟體實現內外穿透,當然還是需要伺服器的 (沒有伺服器的同學,可以先借朋友的玩玩)

下載地址(各平臺的都有):https://github.com/fatedier/frp/releases
因為我們是樹莓派,可以下載最新版 frp_0.29.0_linux_arm.tar.gz(裝客戶端)和 frp_0.29.0_windows_amd64.zip(windows伺服器)或者frp_0.29.0_linux_amd64.tar.gz(linux伺服器)

首先把frp_0.29.0_linux_amd64.tar.gz上傳到伺服器,解壓,跳轉到目錄里,編輯frps.ini

[common]
bind_addr = 0.0.0.0
bind_port = 7000
auto_token = token

然後運行./frps運行,啟動服務端監聽。

把frp_0.29.0_linux_arm.tar.gz上傳到樹莓派,解壓,跳轉到目錄里,編輯frpc.ini

[common]
server_addr = 伺服器ip
server_port = 7000
auto_token = token

[git]
type = tcp
local_ip = 127.0.0.1
local_port = 122
remote_port = 8000

[web]
type = tcp
local_ip = 127.0.0.1
local_port = 1080
remote_port = 8001

然後運行啟動./frpc

然後就可以外網訪問了,www.伺服器ip:8001 就可以訪問git伺服器了。
註意:如果是雲伺服器記得把對應的8000、7000、8001埠加入到安全組裡面,不然會被攔截掉。

frp的詳細用法請參考:https://www.cnblogs.com/sanduzxcvbnm/category/1171545.html

其他安裝

#安裝nginx
docker run -d -p 80:80 --name nginx arm32v7/nginx:1.16

#dokcer儀錶盤管理
docker run -d -p 9000:9000 --restart=always  -v /var/run/docker.sock:/var/run/docker.sock  --name prtainer-test portainer/portainer:arm

#一些其它樹莓派的docker應用
https://hub.docker.com/u/arm32v7/
https://hub.docker.com/u/hypriot?page=1
https://cloud.docker.com/u/bennyzhao/repository/docker/bennyzhao/quartzui

樹莓派還能做什麼

可以做物聯網數據的邊緣計算啊,如設備的數據採集、監控預警、數據分析等等。再買點感測器做個簡陋版“小愛同學”也不是很難,甚至遙控汽車玩具什麼的,能想的到的也沒什麼是做不到的。

資源消耗截圖


24小時不關機,零噪音,一直開心的運行著。

結束

推薦一個開源物聯網組件:https://github.com/zhaopeiym/IoTClientdemo下載


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Linux centos重啟命令: 1、reboot 普通重啟 2、shutdown -r now 立刻重啟(root用戶使用) 3、shutdown -r 10 過10分鐘自動重啟(root用戶使用) 4、shutdown -r 20:35 在時間為20:35時候重啟(root用戶使用) 如果是通 ...
  • 在nginx的server中添加: 這是由於頁面內容過長,預設的值比較小造成的。 ...
  • 在當前文件夾下麵模糊搜索文件: find . -type f | xargs grep 'boot',"boot"表示文件名中包含的字元串 ...
  • 在當前文件中查找包含的字元串 find . -name "*.txt" | xargs grep 'abc' ,例如:查找txt文件中包含字元串a的字元串 ...
  • 發現自己的linux水平楞個瓜皮,找個視屏教程學習一哈1 linux系統簡介1.1 UNIX和Linux發展史unix發展歷史:1969年,美國貝爾實驗室的肯.湯普森開發出unix系統,1971年丹尼斯·里奇發明C語言,1973年,unix用c重寫硬體平臺的概念 也就是cpu架構PowerPC IB... ...
  • 遇到有項目要在內網環境下安裝python項目,所以空餘時寫了自動化部署python環境和python項目的腳本,由於項目涉密,這裡僅提供自動化部署python環境的shell腳本,包括openssl的版本判斷和安裝 註 需要將相關安裝包放在data目錄下,或者修改腳本中的路徑 沒找到上傳附件的地方, ...
  • 1.1 文檔背景 CentOS 7 / RHEL 7部署圖形化界面 安裝VNCserver實現linux系統雲主機桌面化,通過普通用戶實現桌面化操作 2. Vncserver服務端部署 2.1 安裝vncserver 更新包,安裝桌面 2.2 配置vncserver 1、拷貝配置文件 2、修改配置文 ...
  • nmap工具通俗一點說,就是利用nmap工具來對靶機的所有埠及其開啟的服務進行掃描,以便於黑客入侵靶機時,知道用什麼漏洞去攻擊. nmap常用的命令集(標為紅色的一般為常用參數): sV 掃描版本O 系統掃描sC 漏洞掃描vuln 腳本掃描漏洞A 綜合掃描(激烈掃描)F 快速掃描T5 運行級別 默 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...