一.緣起
先說說為什麼有這個想法,比如在遊戲首發的時候,想遠端控制電腦開始下載;想遠端電腦查詢電腦 上的資料等等。作為一名IT行業的從業者,在生活和工作中需要電腦的地方很多,我們不能無時無刻把電腦帶在身邊,但是現在我們身邊無時無刻伴隨著兩樣東西:蜂窩網路和手機。因為我的習慣不喜歡電腦長時間的開著,我不用我就關掉,而且我的電腦散熱風扇風比較大,我覺得長時間開著影響室內空氣質量,所以我就有了遠端控制電腦開機的需求,使用蜂窩網路和手機來實現此需求便可以隨時隨地的控制。
這裡需要說明的是,本文講的是遠端控制電腦開機,而非電腦的遠端桌面,遠端桌面已經有非常多的方案 teamviewer、向日葵、anydesk等等,不過我不喜歡用這些方式(其實比較喜歡 teamviewer,但是經常被提示商用),我的遠端桌面方式是搭建內網穿透(frp 內網穿透遠端桌面(Windows 10)配置),然後直接使用自帶的遠端(PC),APP 的話使用的是微軟開發的 “Microsoft 遠端桌面”。回到正題,下面我分享我的遠端控制電腦開機的實現過程。
二.解決方案一:Wake on LAN
Wake on LAN 簡稱 WOL,簡而言之就是可以通過網路卡來喚醒電腦,現在的網路卡基本上都是支援的。其原理為向網路卡傳送一個資料包,英文名:Magic Packet,中文:魔術包或幻包,網路卡接收到以後便可以啟動電腦。
需要以下步驟來進行設定:
- 進入主機板 BIOS 開啟 Wake on LAN 功能,這裡需要去查詢自己的主機板如何設定,一般在電源管理功能裡面。
- 關閉主機板節電設定,關閉後最明顯的特徵是 USB 口關機後也帶電,主機板燈關機後也常亮。因為需要網路卡帶電,才能接受魔術包。
- 路由器DHCP靜態IP分配
- 進入 Windows 裝置管理,設定網路卡
電源管理:
網路卡屬性:
設定好以後,重啟電腦,下載一個 WOL APP,填寫電腦 IP 和 MAC 便可測試,我是 IOS 在 App Store 搜尋 WOL 便可以搜到很多 APP
正常情況下,會測試成功,向電腦傳送魔術包以後,電腦會立即開啟。
注意:如遇到電腦關機長時間以後 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#: https://github.com/nikeee/wake-on-lan
java:https://www.cnblogs.com/heidsoft/p/4011800.html
三.解決方案二:AC Recovery
AC Recovery 又名 來電自動啟動(回覆),指電腦一通電便可以自動啟動。此方法是最簡單的,不需要WOL各種設定,不需要主機板支援 WOL,但是需要具備兩個條件:
1.主機板具有來電啟動功能
2.智慧插座(小米智慧插座等等各種智慧插座)
我這裡使用的是小米智慧插座,設定的步驟如下:
1.進入主機板BIOS設定來電自動啟動功能
2.進入主機板BIOS 關閉節電設定(經過我的實驗,主機板若開啟節電無法正常來電啟動)
3.正確設定智慧插座,接入米家APP,並連上主機插頭。
此時控制智慧插座 斷電->通電 便可以實現來電自啟動,若發現斷電->通電無法啟動,則可以在中間加一個延時,等待主機板完全斷電,我的設定如下:
四.解決方案三:開機卡
前兩種方案都是我親自實踐並且成功了的,這裡第三種方案,我只是在某寶看到,併為實驗,此方法略微複雜一點。此方法是將獨立的開機卡接入主機板 PCI-E 插槽,在轉接條線到齊上,在通過商家提供的APP來進行控制。這個需要一定的動手能力,想了解的同學可以去某寶搜一下。
五.結束
週末一個下午實驗了兩種方式,雖然簡單,解決了我的生活裡一個實際問題也是非常高興,網上雖然設定的方法都很多,但是實踐下來還是遇到了各種坑。
最後提一下關於語音控制,方案一可以通過APP來新增 Siri 快捷指令來進行語音控制,方案二可以通過小愛同學來來進行語音控制。