因為新型肺炎的原因,交通受阻,無法去公司上班,只能在家遠端工作,但是放假前伺服器全關掉了,現在也沒人去開,然後群裡有人說伺服器是支援遠端喚醒的,可以遠端啟動,於是啟動了部分伺服器,但是對於不支援遠端喚醒的伺服器還是沒辦法。藉此機會總結一下wol技術的原理和操作方法。
其實是網路喚醒,即wake-on-lan,通俗的講成了遠端喚醒。wol可以實現通過網路啟動的主要原因就是來自於網絡卡對wol的支援。除此外,還有wol的擴充套件wake-on-wireless-lan(wowlan),即通過無線網絡卡來喚醒電腦,同樣的也需要無線網絡卡的支援。不過目前來說,似乎大部分機器都無法直接通過無線網絡卡來喚醒。
wol的原理是:通過向網絡卡傳送乙個特定格式的資料報,網絡卡識別到這個資料報之後,配合硬體等裝置來啟動電腦或者伺服器。雖然電腦或伺服器關機了,但是如果是支援wol的網絡卡,則網絡卡仍然是通電的,所以仍然能夠接受來自區域網路內的資料報。
特定的資料報稱為喚醒魔包(wake on magic packet),其資料格式如下:
ff ff ff ff ff ff mac位址x16 密碼段前6個位元組固定ff,後面跟網絡卡的實體地址重複16次,最後是4-6位元組的密碼段
將這個16進製制的資料轉換為二進位制後,封裝為udp格式,然後傳送到網路中,網絡卡接收到資料後進行處理,若為自己的mac位址,則觸發開機。
import socket
from binascii import a2b_hex
if __name__ ==
'__main__'
: addr =
'192.168.0.255'
port =
9 udp = socket.socket(socket.af_inet, socket.sock_dgram)
package =
'ffffffffffff'
for i in
range(0
,16,1
):# 網絡卡位址
package +=
'b888e330d465'
package +=
'000000000000'
udp.sendto(a2b_hex(package)
,(addr, port)
)
public
static
void
main
(string[
] args)
data.
("000000000000");
byte
bytes = hex.
decodehex
(data.
tostring()
);datagramsocket datagramsocket =
newdatagramsocket()
; datagrampacket packet =
newdatagrampacket
(bytes, bytes.length, inetaddress, port)
; datagramsocket.
send
(packet);}
catch
(decoderexception
| ioexception e)
}
身邊沒有伺服器,而且只帶了個華為的小本本回來,所以沒辦法用這個筆記本測試,於是就拿出了8年前買的聯想的thinkpad來測試。它網絡卡是支援wol的。
關機狀態無法喚醒,很可能是硬體問題導致的;
睡眠狀態下可以成功喚醒。
ipconfig/all
個人電腦如何搭建伺服器?或遠端連線
先來介紹下我自己的情況 1。我所進行實驗的環境是在我們學校的校園網中。當然我所介紹的不僅僅適用於校園網,相反地,一般的家庭寬頻相對校園網來說更加容易設定。2。我們學校是動態分配ip位址的,所以分到我們宿舍埠裡的ip位址是動態的,不是固定的。3。我的電腦是處在我們宿舍的路由器下的,我們宿舍的路由器也是...
如何重啟或關閉遠端伺服器
1 建議遠端連線。把遠端機器ip換成實際ip位址,把密碼改為administrator的真實密碼 net use 遠端機器ip ipc 密碼 user administrator 2 執行重啟命令 shutdown r f t 1 m 遠端機器ip 3 執行關機命令 shutdown s f t 1...
個人電腦連線遠端伺服器點滴
ssh配置遠端登入別名 cd ssh 在config檔案中 新增這句話 remote server config host pit 別名 hostname 123.207.170.77 user root identitiesonly yes 預設檔案操作 將本地檔案上傳到遠端伺服器上 scp de...