今天將向大家介紹當(dāng)前喚醒最優(yōu)方案:非公網(wǎng)IP用戶如何直接穿透家庭路由器,一鍵喚醒內(nèi)網(wǎng)計算機,實現(xiàn)遠程開機。
需要提前準(zhǔn)備的材料:
路由器一臺(本文以華碩AU886路由器為例);
固件包(本文以華碩梅林固件為例);
一臺公網(wǎng)服務(wù)器(作為FRPS,實現(xiàn)內(nèi)網(wǎng)穿透);
U盤移動硬盤(用于文件的傳輸和掛載,存儲)
支持WOL遠程喚醒的計算機(只要不是古老的計算機,默認(rèn)上述要求都已經(jīng)滿足。
一、配置計算機(默認(rèn)已開啟,一般可以跳過這一步)
1.主板 BIOS
BIOS 里關(guān)于 WOL 網(wǎng)絡(luò)喚醒的選項一般有 wake on lan;resume on lan;power on PME;power on by PCI-E device; Power on by Onboard LAN 等等,將其設(shè)為 Enabled 即可。
2.網(wǎng)卡驅(qū)動
”控制面板-網(wǎng)絡(luò)和 Internet-網(wǎng)絡(luò)和共享中心-本地連接-屬性-配置“:
“高級”選項卡如下圖設(shè)置:
“電源管理”選項卡如下圖設(shè)置:
windows[8-10]需要禁用windows的快速啟動功能, 因為快速啟動會使得網(wǎng)卡在關(guān)機時候處于徹底關(guān)閉的狀態(tài), 控制面板>>電源選項>>修改關(guān)機按鍵的功能>>修改不可用選項, 啟動模式從快速啟動改為普通模式。
二、路由器刷梅林固件
以華碩AC88U為例:
還原路由器至出廠值,進入 “系統(tǒng)管理–系統(tǒng)設(shè)置”,按圖示開啟ssh以及JFFS,重啟路由器以初始化JFFS。
注意:重啟后檢查Format JFFS partition at next boot是否已經(jīng)自動還原為”否“,如果沒有,手動調(diào)成“否”,否則下次開機會再次還原配置。
三、路由器配置
計算機與路由器之間插上網(wǎng)線,以固定MAC碼。
”內(nèi)部網(wǎng)絡(luò)–DHCP服務(wù)器–手動指定 IP 的 DHCP 列表“,建立IP-MAC地址的映射。
ARP綁定靜態(tài)ip地址
由于在華碩路由器內(nèi),沒有這個設(shè)置,因此我們選擇通過用ssh命令的形式做ARP綁定。
arp-s192.168.1.103F0:76:1CEA:D8
上述設(shè)置在路由器重啟(包括斷電后),ARP綁定將會丟失,如需永久有效并且開機自啟,需要分別利用文件不會丟失的jffs目錄以及scripts開機自啟腳本,具體操作如下:
cd/jffs/scripts/ viarp-s.sh#建立啟動腳本arp-s.sh;
寫入:
#!/bin/sh sleep30 arp-sIP地址MAC地址
chmod7777arp-s.sh
”tools–scripts添加腳本“,腳本類型:WANSTART;腳本地址:/jffs/scripts/arp-s.sh
現(xiàn)在從理論上看,在內(nèi)網(wǎng)環(huán)境下已經(jīng)能夠通過路由器控制界面喚醒本地計算機
進入”網(wǎng)絡(luò)工具–通過網(wǎng)絡(luò)(LAN)喚醒“,按下圖設(shè)置后,檢驗內(nèi)網(wǎng)環(huán)境下是否能夠通過輸入目標(biāo)MAC碼并點擊”喚醒“按鈕喚醒計算機。
之后關(guān)閉計算機,用處于局域網(wǎng)內(nèi)的其他設(shè)備登陸路由器后臺,點擊喚醒,可以看到計算機被喚醒。
四、配置路由器SSH喚醒命令
1.安裝entware環(huán)境
由于梅林是基于Entware來安裝插件的,因此需要安裝entware環(huán)境。
插入U盤/移動硬盤(推薦EXT4文件系統(tǒng),可以用“分區(qū)助手”格式化方式更改掛載盤文件系統(tǒng)類型)
梅林固件可以在插入磁盤的時候自動識別文件系統(tǒng)并掛載,不過考慮到有些固件可能還沒有很完善,所以給出手動掛載的方法,供參考。
#掛載 mkdir/mnt/sda1 mount-text4/dev/sda1/mnt/sda1/ #檢查 df-h FilesystemSizeUsedAvailableUse%Mountedon /dev/sda1916.9G2.0G868.4G0%/tmp/mnt/sda1
#安裝entware環(huán)境 entware-setup.sh
常見安裝失敗原因:在固件中的“軟件中心”安裝了“虛擬內(nèi)存”。
因為這會導(dǎo)致jffs里的post-mount.sh在安裝時不能正確產(chǎn)生,并且“虛擬內(nèi)存”應(yīng)用貌似卸載腳本有問題,正常卸載后相關(guān)的腳本仍然在jffs,這會致使entware環(huán)境重啟后opt路徑無效。同時本來安裝 entware-ng就會創(chuàng)建虛擬內(nèi)存。
情況一:先安裝了“軟件中心-虛擬內(nèi)存”,后安裝entware環(huán)境,entware將無法正常安裝
情況二:先安裝entware環(huán)境,后安裝了“軟件中心-虛擬內(nèi)存”,路由器重啟后entware環(huán)境丟失
而在成功安裝entware環(huán)境后我們可以看到opkg被配置完成。
2.安裝wakeonlan和etherwake工具
opkginstallwakeonlan opkginstalletherwake
查看etherwake命令格式:
內(nèi)網(wǎng)環(huán)境下嘗試使用etherwake-b[MAC碼]喚醒計算機 如:etherwake-bF0:76:1CEA:D8 也可ether-wake-bF0:76:1CEA:D8
在按照上述步驟全部操作完畢后,如果發(fā)現(xiàn)仍然無法正常喚醒路由器,多半是由于魔術(shù)包沒有發(fā)在正確的內(nèi)網(wǎng)里。可以嘗試前往:“外部網(wǎng)絡(luò)-雙線路”,開啟雙線路,選擇負(fù)載均衡,即可解決問題。其原理目前猜測是路由器的特殊地位(既是網(wǎng)關(guān)也是設(shè)備)造成的,歡迎評論討論,
至此,在內(nèi)網(wǎng)環(huán)境下,我們實現(xiàn)了通過一條路由器SSH命令喚醒局域網(wǎng)內(nèi)指定主機。
五、使用Frp內(nèi)網(wǎng)穿透路由器22端口,實現(xiàn)外網(wǎng)環(huán)境ssh登陸
方法1:傳統(tǒng)frpc包配置,在此不在贅述。
缺點:需要解決開機數(shù)據(jù)丟失的問題
方法2:在固件”軟件中心“直接下載使用Frpc
缺點:由于路由器固件下載的Frpc版本固定,因此VPS上的Frps版本需要向Frpc版本看齊(一般就是要求最新版本的Frp),如果之前VPS上已經(jīng)做過其他穿透,極大可能老的Frps和路由器上的最新Frpc版本不一致,如果沒有多余閑置穿透服務(wù)器,需要重裝Frps版本,在本次穿透完成后可能會花費大量時間更改其他穿透客戶端的版本,需要注意。
1.Frps配置
首先前往“軟件中心”查看“Frpc”版本號,下載與之對應(yīng)的Frps文件。點此下載
其次配置文件:
tar-zxvf文件名#解壓縮 cd文件名#進入解壓目錄 #修改frps.ini文件 sudovim./frps.ini
[common] bind_addr=0.0.0.0 bind_port=7000 token=設(shè)置你的token vhost_http_port=8080 vhost_https_port=443 dashboard_port=7500 tcp_mux=true max_pool_count=50 log_level=info log_max_days=1 kcp_bind_port=7000
開放服務(wù)器相應(yīng)端口!
開放服務(wù)器相應(yīng)端口!
開放服務(wù)器相應(yīng)端口!
#在文件目錄下,臨時啟動命令,查看是否報錯 ./frps-c./frps.ini
0.20版本privilege_token應(yīng)寫作token,否則會出現(xiàn) uthorization failed 報錯。
2.路由器Frpc配置
前往“軟件中心”下載“Frpc”,進入配置:
嘗試使用服務(wù)器IP的6100端口遠程登陸路由器shell命令行,成功,至此路由器22端口已成功穿透,實現(xiàn)外網(wǎng)環(huán)境ssh登陸。
六、進階——外網(wǎng)環(huán)境下手機 語音/一鍵 喚醒內(nèi)網(wǎng)計算機(以IOS為例)
1. 下載 捷徑 app(iphone用戶需要ios12版本)
2. 將開機SSH命令寫入APP(用戶密碼指路由器ssh登陸密碼)
3. 加入Siri
一鍵點擊或語音喚醒:
七、簡便替代方案
對于不想追求上述全部功能,或者遠程喚醒使用頻率較低(可以容忍多步操作)的讀者,也可以選擇在完成前文一(配置計算機)二(路由器刷梅林固件)兩步驟并建立IP-MAC地址的映射后,直接嘗試內(nèi)網(wǎng)穿透路由器后臺頁面。
(1)在frpc中添加http穿透。
注意事項:
1、服務(wù)名稱:名稱不能重復(fù)。
2、域名配置(也可以直接填寫主機ip地址):使用http或https穿透服務(wù)時,所有的“遠程主機端口”都會默認(rèn)綁定到“vhost http port”,懂web服務(wù)的應(yīng)該知道,如果多個http都用80端口,需要綁定域名或者分配端口來進行區(qū)分服務(wù),如果不指定域名那么將訪問默認(rèn)的80服務(wù),同樣,填寫的域名也不能和服務(wù)器上其他的沖突。
(2)外網(wǎng)訪問后臺手動喚醒
如在frpc端域名名配置/sk選項選擇了填寫域名,需要進行域名解析。
域名配置/sk選擇填寫域名:通過 域名:8080 形式訪問
域名配置/sk選擇填寫主機IP地址:通過 IP:8080 形式訪問
這里在外網(wǎng)環(huán)境下我通過訪問 “http://r.頂級域名.com:8080” 的方式登陸路由器后臺
進入后臺在側(cè)欄進入“網(wǎng)絡(luò)工具”——>“通過網(wǎng)絡(luò)(LAN)喚醒”——>“選擇需要喚醒的機器mac碼”——>“喚醒”。
如果服務(wù)器上開啟了nginx的web服務(wù),那么在安裝的時候“vhost http port”或“vhost https port”將不能使用80或443端口,如果習(xí)慣訪問地址后面不添加端口,可以使用nginx反向代理的代碼,修改下面的代碼后就可以使用“http://你設(shè)置的域名”來訪問frp了,其他的代碼自行百度如何設(shè)置反向代理解決,下面給出NGINX的配置:
map$http_x_forwarded_for$clientRealip{ ""$remote_addr; ~^(?P[0-9.]+),?.*$$firstAddr; } server{ listen80; server_namemanage.frp.com;#為frp的控制臺綁定一個域名,這樣你就可以用http://manage.frp.com訪問你的控制臺了 location/{ proxy_passhttp://127.0.0.1:6443;#此處的6443就是你安裝frp時設(shè)置的dashboard_port端口 proxy_set_headerHost$host; proxy_set_headerX-Real-IP$clientRealip;#$remote_addr; proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for; } } server{ listen80; server_name*.frp.com;#將所有的frp.com子域名都綁定,這樣就不用客戶端填寫一個你設(shè)置一個了,這樣你可以用http://lisi-route.frp.com或http://zhangsan-route.frp.com訪問你的穿透服務(wù)了。 location/{ proxy_passhttp://127.0.0.1:7080;#此處的7080就是你安裝frp時設(shè)置的vhost_http_port端口 proxy_set_headerHost$host; proxy_set_headerX-Real-IP$clientRealip;#$remote_addr; proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for; } }
-
計算機
+關(guān)注
關(guān)注
19文章
7549瀏覽量
88720 -
WINDOWS
+關(guān)注
關(guān)注
4文章
3580瀏覽量
89386 -
路由器
+關(guān)注
關(guān)注
22文章
3746瀏覽量
114545 -
移動硬盤
+關(guān)注
關(guān)注
2文章
176瀏覽量
44299
原文標(biāo)題:【內(nèi)網(wǎng)穿透開機】外網(wǎng)環(huán)境下基于路由器廣播,一鍵喚醒內(nèi)網(wǎng)計算機實現(xiàn)遠程開機
文章出處:【微信號:網(wǎng)絡(luò)技術(shù)干貨圈,微信公眾號:網(wǎng)絡(luò)技術(shù)干貨圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論