部署winsw-之frp内网穿透windows客户端进程守护

本文介绍了如何使用winsw将frpc注册为Windows服务,以确保进程守护和自启动。详细步骤包括winsw的介绍、下载、配置修改,以及通过cmd和vbs文件安装和启动frpc服务。

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

上一章内容分享了《部署frp进行内网穿透实现远程连接》,文未提到的客户端frpc进程,会因系统自带的Windows Defender Firewall或者其他杀毒软件误杀情况,以此通过winsw.exe注册为windows服务,可以设置为自启动,来实现frpc服务守护。


一、winsw是什么?

winsw(Windows Service Wrapper)是一个开源项目,它可以让我们快速把一个可执行的程序注册为Windows的系统服务。

二、下载winsw

版本v2.11.0点此下载
在这里插入图片描述
#根据本机安装的.Net Framework版本下载即可,另下载sample-minimal.xml做配置参考。

三、查看.Net Framework版本

在运行内输入:C:\Windows\Microsoft.NET\Framework,点击确定后显示如下:
在这里插入图片描述

四、修改文件名和配置

1.对winsw.exe修改名称

因要做frpc的启动服务,故此处将winsw.exe文件名改为winsw_frpc.exe,以方便将来在服务内进行查找与管理;sample-minimal.xml文件名改为winsw_frpc.xml(xml文件名称需与exe的文件名称相同),在c盘根目录创建winsw文件夹,将winsw_frpc.exe和winsw_frpc.xml复制到winsw文件夹内。

2.对winsw_frpc.xml修改配置

<service>
  
  <!-- ID of the service. It should be unique across the Windows system-->
  <id>winsw_frpc</id>
  <!-- Display name of the service -->
  <name>winsw_frpc</name>
  <!-- Service description -->
  <description>frpc服务自动启动</description>
  <!-- Path to the executable, which should be started -->
  <executable>C:\frp\frpc.exe</executable>
  <arguments>-c "C:\frp\frpc.ini"</arguments>
  <startmode>Automatic</startmode> 

</service>

#相关参数说明如下:
1>、id:安装windows服务后的服务ID,必须是唯一的;
2>、name:服务名称,也必须是唯一的。一般和id一致即可;
3>、description:服务说明,可以使用中文,可做备注使用;
4>、executable:执行的命令,比如启动springboot应用的命令java;
5>、arguments:命令执行参数,比如包路径,类路径等;
6>、Automatic:服务启动模式自动。

五、安装winsw_frpc服务

1.cmd运行命令安装

1>、以管理员身份执行cmd,进入到winsw目录。
在这里插入图片描述
2>、执行如下命令
winsw_frpc.exe install
在这里插入图片描述

2.启动winsw_frpc服务

在这里插入图片描述

六、查看服务端仪表板状态

在这里插入图片描述
#client counts数量显示新增一个连接,客户端与服务端连接成功。


至此为止,winsw_frpc服务已安装完毕,另分享一个以bat来安装的内容,可进行参考


在c:\winsw文件夹内创建一个bat文件,内容如下,保存后双击运行即可安装winsw_frpc服务

@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
REM
cd C:\winsw
winsw_frpc.exe install
exit

七、番外篇:使用vbs文件来启动frpc进程

在运行中输入shell:startup,点击确定进入windows启动文件夹,创建vbs文件,内容如下:

set ws=WScript.CreateObject("WScript.Shell") 
ws.Run "C:\frp\frpc.exe -c C:\frp\frpc.ini",0

总结

winsw 开源免费,技术和功能都不错,也在持续更新,是一款很优质的软件,winsw 非常适合 windows server 这种生产环境,托管自己写的程序以服务的形式启动,本文以frpc的服务安装为例,可以触类旁通的应用于其他应用,特此分享。

Windows Server 系统上进行 frp 内网穿透配置,可按以下步骤操作: 1. **本机配置**:下载 frp 软件,操作同服务端,但只保留 frpc.exe 相关文件。 2. **配置 frpc.ini 文件**:有多种配置示例。 -服务器 frps.exe 端口是 9801,希望通过远程桌面访问本机(3389 端口),配置如下: ```ini [common] server_addr = 服务器 IP 地址 server_port = 9801 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 3389 remote_port = 9800 ``` - 若服务端对外的 IP 地址为 111.23.36.33,监听端口为 7000,进行端口范围转发的配置如下: ```ini [common] # 配置服务端对外的 ip 地址 server_addr = 111.23.36.33 # 配置服务端监听的端口 server_port = 7000 # 如果服务端配置 token,将服务端配置的 token 复制到此处 # token = 8d262f2b - 6dba - 4a8d - 857e - 8a53d1d439e2 # pool_count = 5 # 这里是配置端口范围转发 [range:services] # 类型为 tcp type = tcp # 本地 ip 地址通常为 127.0.0.1 local_ip = 0.0.0.0 # 本地要映射的端口范围 bendi local_port = 8080 # 映射到服务端的端口范围 fangwen remote_port = 7500 ``` - 若要开启网页客户端配置,可参考如下配置: ```ini [common] token = token # 服务器中配置的 token server_addr = x.x.x.x # 外网服务器地址 server_port = 7000 # 外网开发端口 # 开启网页客户端配置 可在本地通过 http://127.0.0.1:7400 查看 admin_addr = 127.0.0.1 admin_port = 7400 admin_user = admin admin_pwd = admin [aa1] # 客户端服务名称 唯一 type = tcp # tcp 协议 local_ip = 127.0.0.1 local_port = 3389 # 本地代理端口 remote_port = 22230 # 代理至公网端口 需要开放 ``` 3. **添加为服务(可选)**:下载 winsw 软件,复制到与 frp 相同路径下,将 winsw.exe 重命名为 frpclient.exe(可随意命名),并建立同名的 xml 文件。xml 配置如下: ```xml <service> <id>frpClient</id> <name>frpClient</name> <description>内网穿透客户端</description> <executable>%BASE%\frpc.exe</executable> <arguments>-c %BASE%\frpc.ini</arguments> </service> ``` 4. **配置开机启动(可选)**:可使用任务计划程序或 nssm 工具,确保 FRP 在系统启动时自动运行,适合需要长期运行内网穿透的场景,可根据个人习惯选择适合的方法,实现稳定的 FRP 自动启动 [^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值