參考資料:
nginx實(shí)現(xiàn)TCP轉(zhuǎn)發(fā) - 嗶哩嗶哩 (bilibili.com)
「系統(tǒng)」使用網(wǎng)絡(luò)喚醒計(jì)算機(jī) - 知乎 (zhihu.com)
關(guān)鍵詞:
IPv6 WOL 遠(yuǎn)程喚醒 NAS
前言
根據(jù)上一篇記使用阿里云DNS反向代理IPV6地址訪問內(nèi)網(wǎng)攝像頭 - 簡(jiǎn)書 (jianshu.com)
我擁有一個(gè)綁定在nas上的ipv6的域名,最近想實(shí)現(xiàn)遠(yuǎn)程喚醒電腦
于是稍微研究了一下如何通過ipv6訪問nas并轉(zhuǎn)發(fā)udp信息至電腦,以此來遠(yuǎn)程喚醒電腦
流程
0. 先擁有一個(gè)ipv6域名
- 配置電腦端
- 配置nginx(docker)并轉(zhuǎn)發(fā)udp數(shù)據(jù)
- 測(cè)試
實(shí)施
1. 配置電腦端
1.1配置bios现拒,開啟wol遠(yuǎn)程喚醒
每家bios的怎么開啟wol長(zhǎng)得都不一樣窃躲,具體自己百度
1.2 設(shè)備管理器中開啟網(wǎng)卡的wol遠(yuǎn)程喚醒
如果你是主板網(wǎng)卡的話應(yīng)該和我的情況差不多
如果是usb網(wǎng)卡(有線/無線)請(qǐng)放棄稻爬,無法wol遠(yuǎn)程開機(jī)
另外[高級(jí)]中的魔法包(magic packet),以防萬一也可以enable打開
他是用于一些編程語言來發(fā)送開機(jī)數(shù)據(jù)包,以此來遠(yuǎn)程喚醒
1.3 固定電腦的ipv4地址
win10/win11可以從設(shè)置→網(wǎng)絡(luò)來編輯ip地址
或者從控制面板的網(wǎng)絡(luò)共享中心也行
我的網(wǎng)關(guān)是
192.168.1.1
所以在同網(wǎng)段下將電腦固定地址為
192.168.1.200
同理,子網(wǎng)掩碼需要設(shè)置為
255.255.255.0
至此電腦端配置完成
此時(shí)在內(nèi)網(wǎng)環(huán)境下通過一些應(yīng)用
例如安卓的
Wake On Lan_1.35.apk
或微信小程序的遠(yuǎn)程喚醒WakeOnLan
已經(jīng)可以實(shí)現(xiàn)遠(yuǎn)程喚醒
2. 配置nginx
使用docker創(chuàng)建個(gè)nginx的容器
通過docker-compose來配置
(偷下懶,如果你不知道docker compose是什么自己查一下)
version: '3.1'
services:
nginx:
#總是在docker啟動(dòng)時(shí)啟動(dòng)該容器
restart: always
image: arm32v7/nginx
container_name: nginx
#需要使用nat模式的網(wǎng)絡(luò)
network_mode: "host"
volumes:
#nginx.conf是用于指定nginx的配置文件,需要額外配置
- ./conf/nginx.conf:/etc/nginx/nginx.conf
然后配置nginx.conf
中的內(nèi)容
user root;
worker_processes 1;
events {
use epoll;
worker_connections 1024;
}
# 配置udp/tcp的代理.stream和http是平級(jí)的,不要寫進(jìn)http中
stream {
server {
# [::]:xxxx是監(jiān)聽ipv6地址的寫法.監(jiān)聽udp需要在端口后加上udp
listen [::]:30009 udp;
# 補(bǔ)充,如果是tcp則listen中的端口號(hào)后添加任何內(nèi)容
# listen 30010 ;
# 轉(zhuǎn)發(fā)至電腦,因此填寫電腦的ipv4地址.端口號(hào)9是因?yàn)閣ol默認(rèn)使用9
proxy_pass 192.168.1.200:9;
}
}
http {
# 不需要使用,省略
}
}
3. 測(cè)試是否可用
測(cè)試發(fā)送和接受使用的這2款軟件在這篇文章中都提供了下載方式
3.1發(fā)送信息
發(fā)送我使用安卓的Wake On Lan_1.35.apk
需要填寫電腦的MAC
主機(jī)名寫域名
端口號(hào)寫30009
(將會(huì)轉(zhuǎn)發(fā)至PC的9端口)
設(shè)備IP填寫域名
3.2 接受信息
接受使用WakeOnLAN_2.12.4.0.exe
點(diǎn)開應(yīng)用中的封包監(jiān)控診斷工具剃毒,可以發(fā)現(xiàn)正確的收到了信息
后記
我覺得最麻煩的部分是不知道nginx的udp轉(zhuǎn)發(fā)怎么寫
找了幾篇例如Nginx反向代理TCP - 簡(jiǎn)書 (jianshu.com)都是錯(cuò)誤的寫法
如果你的路由器即可以使用花生殼之類的反向代理樊拓,又可以端口映射
那的確不需要像我一樣配置nginx
-End-