惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Jina AI
Jina AI
V
Visual Studio Blog
博客园 - 司徒正美
TaoSecurity Blog
TaoSecurity Blog
博客园 - 聂微东
IT之家
IT之家
博客园_首页
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cyber Attacks, Cyber Crime and Cyber Security
博客园 - Franky
雷峰网
雷峰网
罗磊的独立博客
S
Schneier on Security
C
Cybersecurity and Infrastructure Security Agency CISA
The Cloudflare Blog
T
Tailwind CSS Blog
B
Blog RSS Feed
H
Help Net Security
T
The Blog of Author Tim Ferriss
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threatpost
C
CERT Recently Published Vulnerability Notes
博客园 - 三生石上(FineUI控件)
P
Palo Alto Networks Blog
I
Intezer
G
GRAHAM CLULEY
Engineering at Meta
Engineering at Meta
S
Securelist
J
Java Code Geeks
V
V2EX
Y
Y Combinator Blog
Simon Willison's Weblog
Simon Willison's Weblog
L
LINUX DO - 热门话题
云风的 BLOG
云风的 BLOG
Spread Privacy
Spread Privacy
MongoDB | Blog
MongoDB | Blog
P
Privacy International News Feed
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
B
Blog
Forbes - Security
Forbes - Security
Google Online Security Blog
Google Online Security Blog
Help Net Security
Help Net Security
S
SegmentFault 最新的问题
N
Netflix TechBlog - Medium
Webroot Blog
Webroot Blog
Microsoft Security Blog
Microsoft Security Blog
SecWiki News
SecWiki News
Scott Helme
Scott Helme
aimingoo的专栏
aimingoo的专栏
N
News and Events Feed by Topic

王小嗨的不老歌

網路受限下部署Fediverse實例GoToSocial 我的博客方案:靜態網站與 IPFS 《三體》與 iPhone 產線:國朝的工業與科幻的黃金時代 「簡中互聯網」:長城內愛國者的鏡花水月 LH汽車站宛若疫情前的三和 matters.news:一个故弄玄虚的伪去中心化站点 Planet:一款IPFS静态站点生成器 《区块链实战:从技术创新到商业模式》读书笔记 關於《一个农民工思考海德格尔是再正常不过的事》的一點點想法
香橙派3B:丐版HomeLab之良品
王小嗨 · 2023-12-31 · via 王小嗨的不老歌

互聯網資本寡頭所提供的各類雲服務,從社交媒體再到同步服務,人們愈發不再信任。「從來就沒有什麼救世主,也不靠神仙皇帝」,那些沒有受虐傾向的人們,那些沒有露體癖的人們,那些不甘被資本與權力宰制的人們,紛紛拿起開源武器,開始了數據的自我賦權,啟動了本地優先之策略。

歲月催人老,泰西2023年已然離去。9月底,本呆採購了一台香橙派作為HomeLab,它在我的出租屋已成功運行了兩個月。現給大家做一個報告,亦作為學習的記錄。

相較各類昂貴和功耗高的x86服務器, 功耗降低的arm架構的單板機是HomeLab之廉價選擇。樹莓派,大名鼎鼎,但它已成為理財產品,為大家所詬病,當然不在我的選擇範圍。思來想去,左等右等,我選購了國產廠商推出的香橙派3B的最高配8G版,它採用RK3566,性能足夠使用。後面,我又採購了電源適配器、SSD硬碟、U盤、散熱片、外殼等。

物件 採購平台 價格
Orange Pi 3B 8G版 淘寶OrangePi官方店 305.72元
電源與電源線 淘寶某店鋪 16.32元
金屬外殼 淘寶某店鋪 62元
128G 2230 SSD硬碟 (二手) 拼多多某店鋪 36元
硬碟散熱銅片 淘寶某店鋪 11.64元
128G 金屬外殼U盤 京東京造自營店 45.9元
U盤散熱銅柱 淘寶某店鋪 33.16元

以上,列舉了HomeLab實際運行的配件,並沒有包括螺絲刀、鉗子、串口線、採集卡、HDMI線、美工刀等,還有一個被折騰壞的壓克力外殼,好在很多器物都是可以重複再利用的。顯然,與各類二手礦難盒子相比,這並不便宜,但好在接口豐富,我看中了它可以直接插2230SSD硬碟,而且在拼多多購買的SSD硬碟好像也沒有通電多少次,感覺超值。

於此HomeLab之中,本地安裝armbian系統,部署了docker,運行了gotosocialIPFS、clash、Cloudflare Tunnel青龍面板等容器,還在持續探索之中。

組裝完畢,我們開始吧。

根據的OrangePI官方用戶手冊的指引,要將系統燒錄到NVMeSSD硬碟,首先需將bootloader燒錄至SPIFlash,才能確保系統從NVMeSSD硬碟啟動。那麼整個流程就簡單明確了,先將系統燒錄至SD卡,通電開機後;再將bootloader和系統分別燒錄至SPIFlash和NVMeSSD硬碟;最後,關機拔掉SD卡,再通電開機即可。

這裡,我採用armbian提供3B的社區維護版系統,SD卡的燒錄工具為balenaEtcher。下載好系統,安裝好燒錄工具即可開始作業。

SD卡連接至電腦後,打開balenaEtcher,在交互介面中選擇下載好鏡像文件和SD卡。

點擊Flash按鈕,等待燒錄完成。將SD從電腦彈出後,插入香橙派的SD卡卡槽,通電啟動。在路由器的後台,找到香橙派的本地IP。有了IP後,打開終端。

1
ssh root@your_ip_address

armbian的root默認密碼為1234,根據提示選擇終端類型與語言、地區等,修改默認root密碼以及創建新用戶。完成初始化設置之後,在終端鍵入命令,進入armbian的設置介面。

選擇System選項。

選擇Install選項。

選擇4選項。

因為我們沒有插入U盤或者其它設置,故選擇選擇1選項。

選擇Yes選項,將NVMeSSD硬碟清除數據格式化。

待進度格式化進度跑完後,選擇1選項。注意:香橙派的bootloader不支援btrfs格式的系統從NVMeSSD硬碟啟動,只能選擇ext4格式。

耐心等待進度跑完,期間香橙派的藍色信號燈會快速閃爍。

NVMeSSD硬碟的寫出完成後,選擇7選項,將bootloader燒錄至SPIFlash。

選擇Yes選項,開始燒錄。

選擇Power off選項,關機。等到電源指示燈熄滅後,拔出SD卡,再次通電。這次,armbian將會從NVMeSSD硬碟啟動,啟動期間藍色指示燈會快速閃爍。待啟動完成,進入路由器後台,找到新的IP。

1
ssh root@your_new_ip_address

受限於國朝網路,需要將軟件源切換至北平清華大學的鏡像,才能獲得良好的速度。

1
sudo nano /etc/apt/sources.list.d/armbian.list

http://apt.armbian.com替換為https://mirrors.tuna.tsinghua.edu.cn/armbian

編輯sources.list。

1
nano /etc/apt/sources.list

先講原有內容註釋掉,然後至北平清華大學的Debian軟件源,選擇相應的版本,粘貼至sources.list後,保存退出。

1
sudo apt update && sudo apt upgrade

運行以上命令,更新軟體列表,根據提示鍵入y,更新軟體。

為安全起見,這裡我們修改SSH的默認端口,取消root登錄,並取消密碼登錄,改為密鑰登錄。

運行以上命令,創建文件夾.ssh

1
2
touch ~/.ssh/authorized_keys
nano ~/.ssh/authorized_keys

運行以上命令,創建authorized_keys文件,並將公鑰粘貼至此。

1
2
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

運行以上命令,修改文件夾及文件的權限。

1
sudo nano /etc/ssh/sshd_config

運行以上命令,編輯SSH的配置文件。

1
2
3
4
port your_ssh_port_number #SSH端口號
PermitRootLogin no #拒絕root登錄
PubkeyAuthentication yes #允許密鑰登錄
PasswordAuthentication no #拒絕密鑰登錄

修改以上內容,保存並退出。

1
sudo systemctl restart ssh

運行以上命令,重啟SSH服務後,就可以使用密鑰登錄了。

為方便在電腦中管理香橙派的文件,我們需部署smaba服務,以獲得遠端管理香橙派的文件有管理本地文件的同等體驗。

運行以上命令,安裝samba軟體。

1
sudo smbpasswd -a $USER

運行以上命令,為當前用戶創建samba登錄密碼。

1
sudo nano /etc/samba/smb.conf

運行以上命令,編輯samba的配置文件。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[global]
   workgroup = WORKGROUP
   server string = orange pi 3b
   security = user
   map to guest = Bad User
   encrypt passwords = yes
   passdb backend = tdbsam

   min protocol = SMB2
   client min protocol = SMB2
   client max protocol = SMB3

   # local master = no
   # preferred master = no

   log file = /var/log/samba/log.%m
   max log size = 50


[orangepi]
   comment = User Files
   path = /home/your_username
   browseable = yes
   writeable = yes
   guest ok = no
   create mask = 0664
   directory mask = 0775

修改`your_username"為正確的用戶名,以上內容替換至配置文件中。

1
2
sudo systemctl start smbd
sudo systemctl enable smbd

運行以上命令,啟動samba,並設置為開機啟動。

運行以上命令,安裝防火牆軟體ufw。

1
2
3
4
5
sudo ufw allow 139/tcp
sudo ufw allow 445/tcp
#以上,允許samba服務通過防火牆
sudo ufw allow your_ssh_port_number/tcp
#以上,允許SSH服務通過防火牆

運行以上命令,將SSH和samba允許通過防火牆。

1
2
sudo ufw enable
sudo systemctl enable ufw

運行以上命令,啟動ufw防火牆,並設置為開機啟動。

1
2
net.core.rmem_max=2500000
net.core.wmem_max=2500000

運行以上命令,修改網路吞吐參數,以便IPFS更好地運行。

1
sudo nano /etc/sysctl.conf

運行以上命令,講前述修改網路參數的命令添加至sysctl.conf,以便重啟後繼續生效。

運行ip link,找到設備的乙太網接口名稱。

1
sudo ip link set your_eth_name promisc on

運行以上命令,開啟網卡混合模式。

1
sudo nano /etc/rc.local

運行以上命令,編輯rc.local文件。

1
sudo ip link set your_eth_name promisc on

exit 0行之前,添加以上內容,保存並關閉文件。

1
sudo systemctl disable wpa_supplicant

運行以上命令,禁用WiFi,節約用電和資源佔用。

數據容災是必修課,良好的數據備份體驗是許多人使用各類雲服務的理由,那打造一個好的HomeLab,就需確保數據有容災能力。這裡,我們使用rsync軟體,採用阮一峰的提供的增量備份腳本,將數據備份至U盤。

考慮U盤的發熱問題,這裡建議選購金屬外殼的U盤,並加裝散熱銅柱,可較好地散熱,以增加U盤的使用時間。

首先,將U盤插入香橙派的USB3.0接口,該接口顏色為藍色。

運行lsblk

找到U盤的名字。

1
sudo mkfs.btrfs /dev/sda1

運行以上命令,將U盤格式化btrfs文件系統。

運行以上命令,創建一個目錄,以便掛載U盤。

1
sudo mount /dev/sda1 /mnt/backups

運行以上命令,挂载U盤至新創建的目錄。

運行以上命令,獲取sdb1的UUID。

編輯/etc/fstab文件。

1
UUID=your_UUID /mnt/myusb btrfs defaults 0 0

/etc/fstab文件中添加以上內容為行。

運行以上命令,安裝rsync至armbian。

1
nano ~/script/backup_script_usb.sh

運行以上命令,創建腳本文件。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/bash

# A script to perform incremental backups using rsync and retain only the last 28 backups

set -o errexit
set -o nounset
set -o pipefail

readonly SOURCE_DIR="/home/your_username/"
readonly BACKUP_DIR="/mnt/backup"
readonly DATETIME="$(date '+%Y-%m-%d_%H:%M:%S')"
readonly BACKUP_PATH="${BACKUP_DIR}/${DATETIME}"
readonly LATEST_LINK="${BACKUP_DIR}/latest"

mkdir -p "${BACKUP_DIR}"

# Perform the backup
rsync -av --delete --exclude=".cache" "${SOURCE_DIR}/" --link-dest "${LATEST_LINK}" "${BACKUP_PATH}"

# Remove old backups, keeping only the last 28
find "${BACKUP_DIR}" -mindepth 1 -maxdepth 1 -type d | sort | head -n -28 | xargs rm -rf

# Remove the existing "latest" link and create a new one
rm -f "${LATEST_LINK}"
ln -s "${BACKUP_PATH}" "${LATEST_LINK}"

講以上內容粘貼至腳本文件。

1
chmod +x ~/script/backup_script_usb.sh

運行以上命令,為腳本賦予執行權限。

運行以上命令,編輯crontab。

1
30 */6 * * * ~/script/backup_script_usb.sh  >> ~/script/log/backup_script_usb.log 2>&1

將以上內容寫入crontab文件為行。

通過掛載U盤,並通過自動備份腳本,我們可以實現每日備份4次的增量備份,並將備份數據保持一週的時間。之後,本呆會將數據也備份至Nas,以增加容災能力。

以上,我們通過初步設置將丐版HomeLab配置完成。要實現本地優先之策略,我們需要將諸多服務部署至HomeLab,以造抵抗之器。後續,本呆會發文介紹目前所使用一些docker容器。

丐版HomeLab,夠用就好。這顆28nm的RK3566性能足以覆蓋基本的需求,倘若追求更強更好的配置,恐怕會陷入至消費主義的陷阱。也許每一互聯網移民都應有一個屬於自己的HomeLab,這也是初民之要義。反動學人福山都在用單板機,妳還在等什麼?