本文分享Ivon個人跑自架服務(self-hosting)的環境,供讀者參考。
這篇文章會敘述Linux伺服器的硬體和軟體設定,以及分享如何從外面的網路連線到自家內網的伺服器。
1. 自架有何好處#
參見論為何應該自架服務一文,許多線上服務都有自架替代品。
至於說自架都跑什麼服務呢?從簡單的擋廣告服務,到BT下載、相簿、影音串流、音樂串流、遠端書庫、雲端硬碟、搜尋引擎、Youtube鏡像站、離線版ChatGPT、AI繪圖、雲手機、串流遊戲的服務都有。更多資訊請見本站自架雲端服務的分類。
我不會讓太多服務同時上線,視乎硬體資源會關掉部份服務。
2. 跑自架服務需要的軟硬體#
端看服務需求。
軟體部份,作業系統建議使用Linux系統。Windows系統雖然也可以跑自架服務,但是不比Linux要來得自由。
至於硬體部份,輕量服務只要一塊「Raspberry Pi」或一台「Intel NUC迷你電腦」或「Mac Mini」就行了。
對Linux作業系統不熟的,購買一台「NAS」吧,現成的硬體對新手來說比較好上手,組RAID會比較方便。
而我是選擇較為自由的自組派,把手弄髒(get hands dirty)學得更快。目前用舊x86電腦改裝成Linux伺服器,不計電費消耗,也沒有組RAID。
詳細規格:
- 主機板:ASUS,可插兩條RAM,還有6個硬碟。
- CPU:x86架構,伺服器四核心CPU就夠用了。
- RAM:16GB DDR4,有點太高級了,低標4GB RAM即可。
- GPU:Nvidia GTX1050Ti。GPU其實不是伺服器必備的,但近年來生成式AI讓顯示卡價值大增,所以添購顯示卡不會虧的。
- 儲存空間:1TB SSD + 1 TB HDD。我在Linux有啟用LVM,所以未來可以動態擴增硬碟。
- 作業系統:當然是GNU/Linux。選一個比較多人用且穩定發表的發行版吧,個人推薦Ubuntu,或者Debian、Rocky Linux、openSUSE Leap、Proxmox這類穩定發表的發行版,不要用滾動發行版。Linux要不要裝圖形界面看個人選擇,我至少還是有留桌面環境方便除錯。
3. 常用系統軟體#
這裡僅列出我覺得比較重要的軟體,請依照實際需求調整。
為了系統穩定度考量,我很少讓Linux伺服器的服務直接跑在裸機上,大部份會將其容器化,或者關在虛擬機裡面跑。
| 名稱 | 功能 |
|---|---|
| OpenSSH | 遠端登入。 |
| Auditd | 檢查系統操作紀錄。 |
| Fail2ban | 阻擋暴力破解SSH密碼。 |
| UFW | 防火牆,視發行版而定,你要用Firewalld也行。 |
| Libvirt + QEMU/KVM | 虛擬機,看情況啟用GPU直通。跑較為重型的服務,例如雲端遊戲串流,或是沒辦法容器化,需要動到系統套件部署的服務。 |
| Docker | 容器技術,比虛擬機輕量的解決方案,大部份自架服務都用這個跑,最主流的容器化方案。更進階的可以考慮Podman、LXC、Kubernetes等等。 |
| Portainer | 網頁管理Docker容器的界面。 |
| Cockpit | 網頁管理QEMU/KVM虛擬機的界面。 |
| Nginx | 反向代理。 |
4. 外網連內網的軟體#
Ivon推薦的外網連內網的軟體,務求:
- 開箱即用,不需要繁雜設定連線規則。這有點主觀啦,我得自己測試過才會放到這裡。
- 必須跨平台,支援Linux、Windows、macOS、Android、iOS
- 起碼提供免費方案
- 客戶端起碼得是開源的
- 必要時能自架伺服器,不依賴官方服務。
為此,市面上的內網穿透軟體如:LogMeIn Hamachi、Radmin VPN、DDNSTO、花生壳、frp、ngrok,皆不在Ivon的考慮之列,這些方案有的要全程自架,有些則是全依賴閉源軟體,要不然就是設定過於繁雜。
於是乎,讓自架服務能從外網連線到內網的工具軟體就是以下列表。可以同時使用多個當作備案。
| 名稱 | 功能 |
|---|---|
| Tailscale | 內網穿透VPN,建立虛擬區網,基於WireGuard研發。安裝簡單,適合單人使用。提供MagicDNS讓你不用打IP就能連線。客戶端為開源軟體,伺服端閉源。 |
| NetBird | 內網穿透VPN,建立虛擬區網,基於WireGuard研發。客戶端與伺服端皆是開源軟體。 |
| ZeroTier | 內網穿透VPN,建立虛擬區網,基於自有協定研發。可以設定很複雜的連線規則,適合多人組織使用。他人不需要註冊帳號就可以加入虛擬區網。可以自訂虛擬區域IP網段。客戶端為開源軟體,伺服端與協定閉源。 |
| Cloudflare Tunnel | 加密隧道,將本機伺服器的服務公開到公共網路,不用VPN就能從外網存取內網的服務。支援自訂網域與HTTPS。客戶端為開源軟體,伺服端閉源。 |
| Port Forwarding + No-IP DDNS | 通訊埠轉發與動態DNS服務。 |


