〈不是工程師,我跟 AI 花一個晚上,用舊電腦自架 n8n〉寫的是整個過程,這篇把第一步拆開來講:
Ubuntu Server 安裝怎麼選、決定它放在家裡網路的哪一層,以及開機後先做哪些安全設定。
我的主機是 2019 年的聯想 IdeaCentre T540(i5-9400F、16GB 記憶體、120GB SSD+1TB 傳統硬碟)。
系統版本是 Ubuntu Server 26.04.1 LTS,以 2026 年 10 月為準。
需要準備什麼
- 8GB 以上的隨身碟
- 一條網路線
- 安裝時暫借的螢幕和鍵盤,裝好之後就用不到了
- 另一台平常用的電腦:下載系統、製作隨身碟,之後也從這台遠端操作主機
空間不用太大。Ubuntu Server 約 5~10GB,Docker 加 n8n 約 1~2GB,20GB 以內就跑得很舒服。
系統最好裝在 SSD 上,傳統硬碟也能跑,但開機、更新都會慢,舊硬碟 24 小時運轉的壽命也是隱憂。
先想好:主機要插數據機還是分享器?
很多家裡是「電信數據機+自己買的分享器」兩台串在一起。判斷方法是看分享器管理頁裡的 WAN IP:
192.168.x.x開頭:數據機本身也是路由器,家裡形成兩層網路(雙層 NAT)- 公開 IP、連線類型是 PPPoE:數據機只負責撥接(橋接模式)
我家的 ASUS 分享器 WAN IP 是 192.168.1.101,屬於雙層 NAT。最後決定主機直接插在數據機上,不插分享器。
原因是分享器會擋掉從外層進來的連線。主機放在外層,就算哪天被入侵,也碰不到分享器後面的電腦、手機和智慧家電;反過來,我從內層的電腦連出去管理主機則完全沒問題。這樣不用買支援 VLAN 的分享器,就有網段隔離的效果。

Ubuntu Server 安裝:製作隨身碟與開機
- 在平常用的電腦下載 Ubuntu Server LTS 的 ISO 檔
- 用 Rufus 把 ISO 寫進隨身碟,寫入方式選 ISO 模式
- 舊主機接上網路線、螢幕、鍵盤和隨身碟
- 開機時一直按 F12(聯想桌機),選 USB 開機
處理器型號結尾有「F」的(例如 i5-9400F)沒有內建顯示,螢幕要接在獨立顯卡的輸出孔,接主機板的孔不會有畫面。
安裝畫面每一步怎麼選
Ubuntu Server 的安裝畫面是純文字,顯示不了中文,全程都是英文。我在每個畫面的選擇如下:
| 畫面 | 我的選擇 |
|---|---|
| Language | English(伺服器版不支援中文顯示) |
| Type | Ubuntu Server,不要選 minimized |
| Storage | 選 SSD,取消 LVM。120GB 會顯示約 111G、1TB 會顯示約 931G,是換算方式不同,不是容量少了 |
| Profile | 伺服器名稱只能用小寫英文、數字和連字號。之後可能不只跑 n8n,建議取通用的名字 |
| Ubuntu Pro | Skip for now |
| SSH | 勾選 Install OpenSSH server |
| Featured snaps | 全部不勾,Docker 之後用官方版本安裝 |
我原本想把伺服器取名為跟 n8n 有關的名字,後來想到之後還會跑影音、也可能放網站,就改成通用的名字。
BIOS:停電後自動開機
伺服器要 24 小時開著,停電復電後要能自己開機。
裝好系統後,用這行指令直接重開進 BIOS(聯想桌機也可以開機時按 F1):
sudo systemctl reboot --firmware-setup
找到 After Power Loss,設成 Power On,按 F10 儲存。
從自己的電腦連進去,設定固定 IP
裝好之後就可以把螢幕鍵盤還回去了,改從平常用的電腦連線。
Windows 打開 PowerShell,輸入安裝時設定的帳號和主機目前的 IP:
ssh 你的使用者名稱@192.168.1.102
第一次連到新位址時,畫面會問要不要信任這台主機(fingerprint),輸入 yes 即可。
之後同一台主機換了 IP,也會提示「這把鑰匙在別的位址見過」,是正常的。
主機的 IP 是數據機自動分配的,哪天可能會變。固定 IP 的安全做法是保留原本自動分配的位址,再「額外」加一個固定位址,這樣設定過程連線不會斷。
先確認想用的位址沒有其他設備在用,出現 100% packet loss 才能用:
ping -c 3 192.168.1.250
再加上固定位址。eno1 是我主機的網路卡名稱,可以用 ip a 查自己的:
sudo tee /etc/netplan/60-static-ip.yaml > /dev/null <<'EOF'
network:
version: 2
ethernets:
eno1:
dhcp4: true
addresses:
- 192.168.1.250/24
EOF
sudo chmod 600 /etc/netplan/60-static-ip.yaml
sudo netplan try
順便更新系統、把時區設成台灣:
sudo apt update && sudo apt upgrade -y
sudo timedatectl set-timezone Asia/Taipei
基本資安三件事
1. 防火牆:只允許家裡的網路連 SSH
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp
sudo ufw enable
之後如果用 Docker 架服務,要注意 Docker 的 port 設定會繞過這個防火牆,後面的文章會再說明怎麼處理。
2. 自動安全更新
Ubuntu Server 預設已經開啟,確認這個檔案裡的兩行都是 "1" 就好:
cat /etc/apt/apt.conf.d/20auto-upgrades
3. SSH 改成只能用金鑰登入
在 Windows 的 PowerShell 產生金鑰,再把公鑰傳到主機:
ssh-keygen -t ed25519
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh 你的使用者名稱@192.168.1.250 "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
重新連線一次,確認不用打密碼就能登入,確認之後才關掉密碼登入。順序反過來,會把自己鎖在門外:
sudo tee /etc/ssh/sshd_config.d/00-hardening.conf > /dev/null <<'EOF'
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no
EOF
sudo sshd -t && sudo systemctl reload ssh
測試看看:強制不用金鑰登入,應該要出現 Permission denied (publickey)。
ssh -o PubkeyAuthentication=no 你的使用者名稱@192.168.1.250
私鑰在電腦的 .ssh 資料夾裡,我另外存了一份到密碼管理器 Bitwarden,電腦壞掉時才拿得回來。
真的都不行,最後的退路是接螢幕鍵盤,用帳號密碼直接在主機上登入。
順手做:韌體更新
sudo fwupdmgr refresh
sudo fwupdmgr get-upgrades
我的主機沒有 BIOS 更新(風險最高的一類),有的是安全開機憑證和 SSD 韌體。
微軟 2011 年的安全開機憑證在 2026 年陸續到期,換成 2023 年的新版,之後 Ubuntu 更新才不會遇到開機問題。
其中一項顯示「更新失敗」,但查目前版本已經是 2023 年版。原因是清單裡同一個憑證有兩個更新版本,一個成功、另一個被判定失敗。
更新前先備份;重開機過程看起來像當機,也絕對不能拔電源。
這是舊電腦家用伺服器系列的第 2 篇。
上一篇:〈不是工程師,我跟 AI 花一個晚上,用舊電腦自架 n8n〉;
下一篇〈不開 port 也能從外面連回家:用 Cloudflare Tunnel 架 n8n〉已經上架,寫的是怎麼用 Cloudflare Tunnel 讓 n8n 從外面連得到,家裡不開任何 port。






