frp 在 Windows 下后台自动重启与故障重启
frp 在 linux 下后台自动启动和故障重启可以用 systemd 实现,也较容易,文档中也有说明。
但在 windows 下文档并没有说如何实现,这里说下本人在 windows 下的使用方法和经验。
以下有两种实现方式,都亲测稳定使用。
方法 1:任务计划管理程序
在 计算机管理 -> 系统工具 -> 任务计划程序 -> 任务计划程序库
中添加一个任务
常规
选项卡- 填写名称,任意即可,如
frp
- 勾选
不管用户是否...
- 勾选
不存储密码...
- 勾选
使用最高权限...
- 勾选
隐藏
- 填写名称,任意即可,如
触发器
选项卡,添加触发器,设为在系统启动时
操作
选项卡,新建操作,设置 frp 的路径和启动参数,如程序或脚本
设置为E:\frp\frpc.exe
添加参数(可选)
设置为-c "E:\frp\frpc.ini"
条件
选择卡,取消勾选只有在计算机使用交流电源...
设置
选项卡- 勾选
允许按需允许任务
- 勾选
如果任务失败,按以下频率重新启动
,按需设置间隔和次数 - 取消勾选
如果任务允许时间超过...
- 取消勾选
如果请求后任务还在运行...
- 勾选
保存后,右键单击新建的条目,再点 运行
即可。
后续电脑重启都会自动运行,或者在任务计划程序这里通过点击右键菜单运行
和结束
来控制运行。
实测中文路径可能会影响自动启动,建议使用无特殊字符的英文路径。
方法 2:使用 pm2
pm2 虽然是管理 nodejs 的,但实测也可以托管 frp 程序,且运行稳定。
这个方法需要 nodejs 环境,如果没有,自行搜索安装方式。
下面直接使用
安装 npm 包
1 | npm install -g pm2 |
添加并启动服务
1 | pm2 start -n <name> <frp.exe 路径> -- -c "<配置文件路径>" |
frp 参数是服务名称,可自定义,frpc.exe 和 frpc.ini 的路径替换为你的实际路径。
如
1 | pm2 start -n frp E:\frp\frpc.exe -- -c "E:\frp\frpc.ini" |
设置自动启动
上面脚本默认是有故障重启的,因此这里只用设置开机自启即可。
控制台执行语句
1 | pm2-startup install |
其他守护程序
本人也尝试过其他守护程序,主流的如 nssm
和 WinSW
目前都已经不再维护。