前言
之前在Ubuntu18.04
上实现了Sakura Frp程序的自启服务,实现开机自动启动frp
执行文件,客户机可以直接实现后续的远程连接操作。目前需要在WindowsServer
上完成frp软件的自启服务,记录一下尝试过的方法。需要提前下载好frpc_windows_amd64.exe执行文件,并且知道自己的frp
启动参数,文中以-f 123456789:6666
为例。
设置开启启动项
创建一个.bat
文件:D:\Sakurafrp_Windows\sakurafrp.bat
,内容为:frpc_windows_amd64.exe -f 123456789:6666
创建一个.vbs
文件:D:\Sakurafrp_Windows\Sakura_frpc.vbs
,内容为:
set ws=WScript.CreateObject("WScript.shell")ws.Run "sakurafrp.bat /start",0
找到开机自动启的文件夹:运行栏中键入shell:startup
,窗口跳转到目录:C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
将Sakura_frpc.vbs
文件的快捷方式,粘贴进自动启动的文件内,即可实现开机自动启动目标.bat
脚本。
博主测试后,的确是可以实现开机自动启动功能,后台也的确可以看到frpc_windows_amd64.exe
的运行状态,但是状态不稳定,导致远程连接失效。于是转向设置自定义启动服务。
设置开机自启服务
sc命令
参考:SC命令—安装、开启、配置、关闭windows服务 bat批处理
注册一个自定义服务
C:\Users\Administrator>sc create sakurafrp binPath= "D:\Sakurafrp_Windows\sakurafrp.bat"[SC] CreateService 成功
设置为开机自启服务
C:\Users\Administrator>sc config sakurafrp start=auto[SC] ChangeServiceConfig 成功
启动sakurafrp服务报错
C:\Users\Administrator>net start sakurafrp服务没有响应控制功能。请键入 NET HELPMSG 2186 以获得更多的帮助。
服务没有响应控制功能
这个错误网上没找到特别合适的解决方法,于是使用以下的工具实现开机自启自定义服务操作!不过还是要将刚才的废物服务给删除掉(╬▔皿▔):sc delete sakurafrp
。
instsrv.exe和srvany.exe工具
参考:将BAT文件注册为windows服务的方法
软件下载,并转移文件;
下载地址:srvany.exe和instsrv.exe 正式版,然后将instsrv.exe
和srvany.exe
复制进C:\Windows\System32
创建自定义服务
以管理员身份运行cmd
,在窗口中键入命令:instsrv mySakurafrp C:\Windows\System32\srvany.exe
,mySakurafrp
为自定义的服务名称。此时报错:
C:\Windows\system32>instsrv mySakurafrp C:\Windows\System32\srvany.exeUnable to find the file at the given path.
解决方案参考在64位windows下使用instsrv.exe和srvany.exe创建windows服务,主要还是因为在我们的64位电脑上运行32位instsrv.exe
和srvany.exe
的原因,所以只需要将instsrv.exe和srvany.exe
再复制进C:\Windows\SysWOW64
即可,再次键入instsrv mySakurafrp C:\Windows\System32\srvany.exe
完成自定义服务的创建。
添加注册表参数
在计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mySakuraFrp
目录下:
如果该服务名下没有Parameters
项目,则对服务名称项目右击新建项,名称为Parameters
,然后定位到Parameters
项,新建以下几
个字符串值。
名称Application
值为你要作为服务运行的.bat
文件地址。
名称AppDirectory
值为你要作为服务运行的.bat
文件所在文件夹路径。
名称AppParameters
值为你要作为服务运行的.bat
文件启动所需要的参数。
将服务设置为自动启动
运行栏键入services.msc
进入服务窗口,找到自定义服务,设置为自动启动即可!
重启测试