記一次實現遠程控制電腦開機過程

一.緣起

先說說為什麼有這個想法,比如在遊戲首發的時候,想遠程控制電腦開始下載;想遠程電腦查詢電腦 上的資料等等。作為一名IT行業的從業者,在生活和工作中需要電腦的地方很多,我們不能無時無刻把電腦帶在身邊,但是現在我們身邊無時無刻伴隨著兩樣東西:蜂窩網路和手機。因為我的習慣不喜歡電腦長時間的開著,我不用我就關掉,而且我的電腦散熱風扇風比較大,我覺得長時間開著影響室內空氣品質,所以我就有了遠程控制電腦開機的需求,使用蜂窩網路和手機來實現此需求便可以隨時隨地的控制。

image-20201018205107269

這裡需要說明的是,本文講的是遠程控制電腦開機,而非電腦的遠程桌面,遠程桌面已經有非常多的方案 teamviewer、向日葵、anydesk等等,不過我不喜歡用這些方式(其實比較喜歡 teamviewer,但是經常被提示商用),我的遠程桌面方式是搭建內網穿透(frp 內網穿透遠程桌面(Windows 10)配置),然後直接使用自帶的遠程(PC),APP 的話使用的是微軟開發的 「Microsoft 遠程桌面」。回到正題,下面我分享我的遠程控制電腦開機的實現過程。

二.解決方案一:Wake on LAN

Wake on LAN 簡稱 WOL,簡而言之就是可以通過網卡來喚醒電腦,現在的網卡基本上都是支援的。其原理為向網卡發送一個數據包,英文名:Magic Packet,中文:魔術包或幻包,網卡接收到以後便可以啟動電腦。

需要以下步驟來進行設置:

  1. 進入主板 BIOS 開啟 Wake on LAN 功能,這裡需要去查詢自己的主板如何設置,一般在電源管理功能裡面。
  2. 關閉主板節電設置,關閉後最明顯的特徵是 USB 口關機後也帶電,主板燈關機後也常亮。因為需要網卡帶電,才能接受魔術包。
  3. 路由器DHCP靜態IP分配

image-20201019222811764

  1. 進入 Windows 設備管理,設置網卡

電源管理:

image-20201019222919337

網卡屬性:

image-20201019222958386

設置好以後,重啟電腦,下載一個 WOL APP,填寫電腦 IP 和 MAC 便可測試,我是 IOS 在 App Store 搜索 WOL 便可以搜到很多 APP

image-20201019223209902

正常情況下,會測試成功,向電腦發送魔術包以後,電腦會立即開啟。

注意:如遇到電腦關機長時間以後 WOL 無法喚醒電腦,那麼需要進入路由器設置 ARP 綁定,若路由器沒有相關功能,則需要 SSH 進入路由器,執行命令 arp -s ip地址 mac地址,需要注意的是此命令執行後,重啟路由器就失效了,有解決辦法,就是加入路由器開啟執行的腳本,這裡不做詳細講述,因為不同的路由器ROM是有區別的。執行ARP綁定後就會解決這個問題(PS:這個問題困擾我很久了,還是同事給了這個解決辦法)。

1.關於 廣域網喚醒

若有公網 ip,那麼直接設置埠轉發,轉發到電腦的 9 埠(一般都是)。沒有公網 ip 可以在區域網的某一持續運行的設備設置內網穿透,建議在路由器上設置,若是梅林等韌體可以安裝現成的插件,我是小米路由器,進入SSH 裝了一個 frp 內網穿透,配置如下

[common]
server_addr = <公網伺服器ip>
server_port = <公網伺服器 frp 埠>
authentication_method = token
token = <認證 token>

[遠程桌面]
type = tcp
local_ip = <電腦區域網ip>
local_port = 3389
remote_port = <遠程桌面埠>

[WOL廣域網]
type = udp
local_ip = <電腦區域網ip>
local_port = 9
remote_port = <WOL遠程埠>

2.魔術包

魔術包有一個標準的演算法,網上有很多解釋演算法的文章以及各種語言的程式碼實現。

C#: //github.com/nikeee/wake-on-lan

java://www.cnblogs.com/heidsoft/p/4011800.html

三.解決方案二:AC Recovery

AC Recovery 又名 來電自動啟動(回復),指電腦一通電便可以自動啟動。此方法是最簡單的,不需要WOL各種設置,不需要主板支援 WOL,但是需要具備兩個條件:

1.主板具有來電啟動功能

2.智慧插座(小米智慧插座等等各種智慧插座)

我這裡使用的是小米智慧插座,設置的步驟如下:

1.進入主板BIOS設置來電自動啟動功能

2.進入主板BIOS 關閉節電設置(經過我的實驗,主板若開啟節電無法正常來電啟動)

3.正確設置智慧插座,接入米家APP,並連上主機插頭。

此時控制智慧插座 斷電->通電 便可以實現來電自啟動,若發現斷電->通電無法啟動,則可以在中間加一個延時,等待主板完全斷電,我的設置如下:

image-20201019230309971

四.解決方案三:開機卡

前兩種方案都是我親自實踐並且成功了的,這裡第三種方案,我只是在某寶看到,並為實驗,此方法略微複雜一點。此方法是將獨立的開機卡接入主板 PCI-E 插槽,在轉接條線到齊上,在通過商家提供的APP來進行控制。這個需要一定的動手能力,想了解的同學可以去某寶搜一下。

五.結束

周末一個下午實驗了兩種方式,雖然簡單,解決了我的生活里一個實際問題也是非常高興,網上雖然設置的方法都很多,但是實踐下來還是遇到了各種坑。

最後提一下關於語音控制,方案一可以通過APP來添加 Siri 快捷指令來進行語音控制,方案二可以通過小愛同學來來進行語音控制。