写一个frpc的windows服务管理器
前言
在之前的一篇文章( 远程连接被爆破的最佳解决办法)中,提到如何避免远程桌面被爆破。有人私信说步骤太复杂,也发了他们在用的一些方案:
- 通过安全狗来设置主机名作为白名单条件
softether
组件局域网(和zerotier
类似)- 通过
RouterOS
设置某些情况下的请求将ip加入到白名单,比如弄个带验证的接口,不在白名单的拒绝远程
这些方法都是可以的,任意选择一个即可。不过怎么会觉得我的那篇文章配置复杂呢,文章虽然很长,但操作起来就两个步骤:
- 使用frp开启一个http代理
- 下载
Parallels Client
这个软件,并使用代理连接远程
无需把端口转发到公网,也无需设置防火墙
优化
第二步肯定都知道怎么操作了,那应该就是第一步不清楚怎么配置,或者是没有一个带公网ip的服务器用来做服务端。
这篇就写一个frpc的Windows服务管理程序,将第一步的操作也稍微简化一下,也实现一下打开软件点几下就能用。frps(服务端)一般是在linux上部署,这里就只针对Windows上的frpc(客户端)。
为了方便大家测试,我开放一个frps服务端的配置,使用的是我家里的宽带部署的。
后台回复frp
获取frps的配置信息。仅用作测试,请勿依赖,如果失效后台回复或加我好友
因为frp没有用户管理,也无法限制每个人使用的资源量,所以请自觉一点不要滥用。
使用介绍
使用时不要直接穿透3389端口,先添加http_proxy
类型的代理,然后下载Parallels Client
连接,软件的使用看上一篇文章。
因为其他人也能看到并使用这个frps配置,虽然他们看不到你穿透了哪些端口,但是可以扫描服务器哪些端口被使用了,同样可能爆破。
如果是http代理的形式,爆破代理也只是针对的服务器,你本地的电脑不会受到影响。另外,代理的账号密码别太简单,尽量设置复杂一点。
使用步骤:
- 先在
config.ini
文件里填写frps配置信息,在填写你需要设置的代理账号和密码 - 打开管理器,添加一个
http_proxy
类型代理,端口选择20000-50000
的任意一个端口,如果端口有人用的话,就换一个端口 - 如果是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
还有两个配置信息
- 可以配置是否在关闭软件的时候,停止和删除frpc服务
- 配置代理的验证信息
[manager]
autoCloseFrpc = false
[verification]
; 这是代理的验证用户和密码,尽量设置的复杂点
username = admin
password = admin
添加、删除和修改映射
右键空白位置会弹出选项,点击需要操作的选项
比如点添加就会弹出一个窗口,填写相应的信息就可以增加映射,本地地址需要加上端口:
下面这几个按钮看字面意思应该知道了,就不提了
软件需要在启动前先创建快捷方式,并右键快捷方式,在后面加上--manger才能启动。
这么设计是因为服务和管理器界面用的都是这个exe,如果加了这个参数启动就是启动管理器界面,如果不加的话走的就是服务的逻辑了,你就看不到界面
你打开这个软件会运行了两次,一个作为管理器界面运行,一个作为后台服务运行。
开机自启
即使关闭了管理器的界面,后台的frpc服务依然是在运行的,因为管理器界面只是用于注册、启动服务和管理frpc配置文件的。
服务默认会开机自启,服务可以在任务管理器里看到。如果不想让他自启,可以用管理器删除服务或者右键打开服务
将自启从自动设置成手动
仓库地址
https://github.com/kanadeblisst00/FrpcManager
github可能访问较慢,可以试试我自建的git仓库