1. 概述:為什麼需要?

在家或辦公室中,24小時開著桌面電腦不僅浪費電力,還將增加維護成本。

因此,我考慮利用類似樹莓派這樣的24小時運行的小型伺服器,來遠程開啟目標桌面,只有在需要的時候才啟用。

為此,我利用了「Wake-on-LAN(WOL)」功能,並制定了以下策略。

  • 桌面 BIOS 設定:啟用 WOL 功能
  • Linux (Ubuntu) 設定:在系統關閉後保持網絡卡的活躍狀態
  • 樹莓派設定:編寫並自動化發送魔法數據包的腳本

需要的套件: - wakeonlan(用於樹莓派或伺服器發送魔法數據包)

Wake-on-LAN 概覽


2. 環境配置

  • 目標 PC:安裝 Ubuntu 24.04 的桌面
  • 伺服器:樹莓派 5(Ubuntu Server 24.04)
  • 網絡:連接到相同的本地網絡(建議有線)

3. 桌面 BIOS 設定

要使用 Wake-on-LAN,主板的 BIOS 設定非常重要。

BIOS 設定方法

在 BIOS 中設定以下項目。本人使用的是 GIGABYTE 主板,使用其他品牌的用戶可以參考相似的選項進行設定。

  1. 在桌面啟動時進入 BIOS/UEFI 設定(通常是 DELF2 鍵)
  2. 啟用以下項目:

ERP (有關省電模式)
- ERP 設定:Disabled (不使用),因為省電模式可能會阻礙 WOL 功能。

啟用 CSM - CSM Support: Enabled - 啟用 CSM 後可能會顯示以下項目(在 GIGABYTE 主板上): - LAN PXE Boot Option ROM: 保持禁用 - Save OpROM Policy: Legacy - Other PCI Devices: Legacy

通過 LAN 恢復 / 通過 PCI-E 開機
- 有些主板在沒有單獨項目的情況下自動支持 → 即使選項沒有顯示,也可以正常運作

  1. 保存後重啟

※ 根據製造商的不同,選項名稱可能會略有不同,因此需要尋找類似「Wake」、「Power On by PCI」的選項進行設定。


4. 桌面 Linux (Ubuntu) 設定

在 Ubuntu 中,即使系統關閉,NIC(網絡介面卡)也必須保持活躍狀態。

1. 確認網絡介面名稱

ip a

示例結果:

2: enp4s0: ...
    link/ether <AA:BB:CC:DD:EE:FF> ...
  • enp4s0:確認網絡介面的名稱。(這是桌面的有線 LAN 設備名稱,因此可能因設備而異。)
  • AA:BB:CC:DD:EE:FF:MAC 地址(魔法數據包的目標) ※ 當遇到 MAC 地址洩露時,應注意安全。

2. 安裝 ethtool

sudo apt update
sudo apt install ethtool

3. 確認和設定 WOL 狀態

sudo ethtool enp4s0 | grep Wake

結果示例:

Supports Wake-on: pumbg
Wake-on: d
  • d → 停用狀態
  • 可以使用以下命令啟用:
sudo ethtool -s enp4s0 wol g

再次確認:

Wake-on: g

4. 設置為啟動時自動配置(選擇性:適用於重新啟動後 Wake-on:g 被禁用的情況)

自 Ubuntu 20.04 起,/etc/rc.local 不再默認支持,因此更推薦使用 systemd 服務的方法。

創建 /etc/rc.local 的方法:

sudo nano /etc/rc.local

exit 0 之上添加:

/sbin/ethtool -s enp4s0 wol g
exit 0

存檔後授予執行權限:

sudo chmod +x /etc/rc.local

可能需要添加 systemd 服務的額外設置。


5. 樹莓派發送魔法數據包

1. 安裝 wakeonlan 套件

sudo apt install wakeonlan

2. 執行 WOL 命令

wakeonlan AA:BB:CC:DD:EE:FF # 將上面確認的 MAC 地址放入。

3. (選擇性)註冊別名

# 在 AA:BB:CC:DD:EE:FF 部分填入遠程啟動目標的 PC 的 MAC 地址。
echo "alias wakeup_dude='wakeonlan AA:BB:CC:DD:EE:FF'" >> ~/.bashrc
source ~/.bashrc

→ 從此以後,可以簡單執行:

wakeup_dude

6. 結果

  • 桌面即使完全關閉後,也可接收魔法數據包並自動啟動
  • 成功完成 Wake-on-LAN 遠程啟動實現!

7. 安全相關

  • 作為控制中心的「樹莓派」伺服器的 SSH 連接安全設置、路由器安全設置、UFW 設置等安全設置必須加強。
  • 如果從外部訪問,建議使用 SSH 端口轉發或 VPN。

8. 使用示例

# 從外部訪問
ssh username@<your_ip_or_domain> -p <your_ssh_port>
# 連接後
wakeup_dude
🎉 桌面自動啟動!

9. 參考

  • Wake-on-LAN 只能在有線 LAN上運行(Wi-Fi 不可行)
  • 某些主板在 Suspend 狀態下可運行,但在 Shutdown 狀態下可能會受限。(在 GIGABYTE 主板上也確認可在 Shutdown 狀態下成功)

通過建立「僅在需要時」啟動的桌面環境,可以實現智能高效的伺服器管理。