写一个frpc的windows服务管理器

发布时间 2023-12-06 14:13:16作者: qwertyuiop1822

前言

在之前的一篇文章( 远程连接被爆破的最佳解决办法)中,提到如何避免远程桌面被爆破。有人私信说步骤太复杂,也发了他们在用的一些方案:

  1. 通过安全狗来设置主机名作为白名单条件
  2. softether组件局域网(和zerotier类似)
  3. 通过RouterOS设置某些情况下的请求将ip加入到白名单,比如弄个带验证的接口,不在白名单的拒绝远程

这些方法都是可以的,任意选择一个即可。不过怎么会觉得我的那篇文章配置复杂呢,文章虽然很长,但操作起来就两个步骤:

  1. 使用frp开启一个http代理
  2. 下载Parallels Client这个软件,并使用代理连接远程

无需把端口转发到公网,也无需设置防火墙

优化

第二步肯定都知道怎么操作了,那应该就是第一步不清楚怎么配置,或者是没有一个带公网ip的服务器用来做服务端。

这篇就写一个frpc的Windows服务管理程序,将第一步的操作也稍微简化一下,也实现一下打开软件点几下就能用。frps(服务端)一般是在linux上部署,这里就只针对Windows上的frpc(客户端)。

为了方便大家测试,我开放一个frps服务端的配置,使用的是我家里的宽带部署的。

后台回复frp获取frps的配置信息。仅用作测试,请勿依赖,如果失效后台回复或加我好友

因为frp没有用户管理,也无法限制每个人使用的资源量,所以请自觉一点不要滥用。

使用介绍

使用时不要直接穿透3389端口,先添加http_proxy类型的代理,然后下载Parallels Client连接,软件的使用看上一篇文章。

因为其他人也能看到并使用这个frps配置,虽然他们看不到你穿透了哪些端口,但是可以扫描服务器哪些端口被使用了,同样可能爆破。

如果是http代理的形式,爆破代理也只是针对的服务器,你本地的电脑不会受到影响。另外,代理的账号密码别太简单,尽量设置复杂一点。

使用步骤:

  1. 先在config.ini文件里填写frps配置信息,在填写你需要设置的代理账号和密码
  2. 打开管理器,添加一个http_proxy类型代理,端口选择20000-50000的任意一个端口,如果端口有人用的话,就换一个端口
  3. 如果是running的状态,就可以通过代理连接远程桌面了。也可以先用浏览器插件测试一下这个代理

frpc管理器

frp的官网没有Windows开机自启的方法,linux是使用的systemd来操作,这样很不方便,每次开机都得自己打开一次。

所以管理器的第一个功能必须先将frpc注册为系统开启自启服务,再加上一个管理穿透的规则就可以了,成品的软件截图如下:

代码是开源的,如果觉得用着有问题或者bug,可以提建议给我或者自己修改。

因为代码是开源的,所以如果杀毒软件报毒的话,这个就自行解决了(杀毒软件开放白名单或者自己编译看看)

修改服务端信息

同样是通过配置文件来配置。新建一个config.ini, 填写frps的连接信息,如下:

[frps]
; frp server的连接信息
serverAddr = 127.0.0.1
serverPort = 12345
authToken = token
protocol = kcp

还有两个配置信息

  1. 可以配置是否在关闭软件的时候,停止和删除frpc服务
  2. 配置代理的验证信息
[manager]
autoCloseFrpc = false

[verification]
; 这是代理的验证用户和密码,尽量设置的复杂点
username = admin
password = admin

添加、删除和修改映射

右键空白位置会弹出选项,点击需要操作的选项

比如点添加就会弹出一个窗口,填写相应的信息就可以增加映射,本地地址需要加上端口:

下面这几个按钮看字面意思应该知道了,就不提了

软件需要在启动前先创建快捷方式,并右键快捷方式,在后面加上--manger才能启动。

这么设计是因为服务和管理器界面用的都是这个exe,如果加了这个参数启动就是启动管理器界面,如果不加的话走的就是服务的逻辑了,你就看不到界面

你打开这个软件会运行了两次,一个作为管理器界面运行,一个作为后台服务运行。

开机自启

即使关闭了管理器的界面,后台的frpc服务依然是在运行的,因为管理器界面只是用于注册、启动服务和管理frpc配置文件的。

服务默认会开机自启,服务可以在任务管理器里看到。如果不想让他自启,可以用管理器删除服务或者右键打开服务将自启从自动设置成手动

仓库地址

https://github.com/kanadeblisst00/FrpcManager

github可能访问较慢,可以试试我自建的git仓库

http://www.pygrower.cn:21180/kanadeblisst/FrpcManager