外网环境下基于Linux主机udp广播,实现远程开机(推荐)
外网环境下基于Linux主机udp广播,实现远程开机(推荐)
之前文章向大家介绍了 外网环境下基于FRP、VNC技术远程开机。在完成上一期内容后,静下来思考了一下,发现如果局域网内有Linux主机(如树莓派),实际上无需通过路由器进行WOL远程唤醒。因此本篇文章适用于任何局域网内拥有Linux主机的用户。
一、Linux主机开启WOL
sudo apt-get install wakeonlan
二、外网穿透局域网内Linux主机21端口
对于拥有公网IP的Linux主机用户而言,可以跳过这一部分,这里主要还是介绍下没有公网IP的Linux主机(如树莓派),如何外网ssh。
没有公网IP的Linux主机,需要内网穿透,这里以树莓派FRP内网穿透为例:
关于FRP内网穿透详细方法,可参见 点击查看本文
本文在进行如下操作前,frps的配置以及自启方法,可参见 点击查看本文
FRPC配置
sudo apt-get update
wget https://github.com/fatedier/frp/releases/download/v0.17.0/frp_0.17.0_linux_arm.tar.gz
tar -zxvf frp_0.17.0_linux_arm.tar.gz #解压缩:tar xvf 文件名
cd frp_0.17.0_linux_arm #进入解压目录
#修改frps.ini文件
sudo vim ./frpc.ini
添加以下内容(需要删除注释):
[common]
server_addr = your_server_ip #VPS服务器IP
server_port = 7000 #端口,与服务端bind_port一致
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 21
remote_port =6000
先运行一下,有上面的显示说明能够正常运行后再在后台启动。
#后台保持启动 需要在frp_0.17.0_linux_arm目录下操作
nohup ./frpc -c ./frpc.ini &
如果之前已经开启过 frpc 服务,需要暂停:
sudo systemctl stop frpc # 之前是采用systemctl方式开启的frpc服务,需要暂停
ps -ef |grep frpc
sudo kill -9 进程号
cd frp_0.17.0_linux_arm
./frpc -c ./frpc.ini # 如果确保没有错误,可以不执行这两行,直接执行下面的语句。
sudo systemctl start frpc
三、外网ssh局域网内Linux主机,远程唤醒计算机
本文以手机为例,使用Termius app进行ssh访问:
wakeonlan [局域网内需要唤醒的主机mac地址]
至此,基于Linux主机udp广播,成功实现远程开机。