Comments (17)
目前还没有这方面的开发计划。
from frp.
感谢大佬的回复和解决方案,我会持续关注这个issues ,有好的办法和思路我也会及时在本issues下反馈分享
from frp.
我之前准备的实现思路是,每天定时吧frps重启,强制所有客户端重新链接,进行校验,但是这样会对其他客户端/用户,的体验不是很好
from frp.
然后还有一个思路
是从这个插件【frps-auth】 看到的 仓库地址:https://github.com/chi-cat/frps-auth
这个插件的作者实现思路,是修改了frps的源码,提供了结束代理方法
在您回复之前,我也打算尝试修改frps源码实现这一功能,但是无奈我不太会go语言,但是我也在尝试自己修改,如果可以的话,我会开源一个 会长期维护,并且包含关闭指定代理的 方法或api 的版本 ,
当然,如果有大佬愿意修改并开源,那就更好了
from frp.
目前还没有这方面的开发计划。
我在 插件《 frps-auth 仓库地址:https://github.com/chi-cat/frps-auth 》 注意到这样一句话,
frps-aut作者有提到: #4326 (comment) (截屏标注位置)
【根据和frp作者大大沟通;在frp的dev分支上已经加入了类似的api,此功能可能会在dev合并到master分支后发生更改。】
想问一下您,现在frp中, 有这个api么,有的话有相关说明文档吗
from frp.
我之前准备的实现思路是,每天定时吧frps重启,强制所有客户端重新链接,进行校验,但是这样会对其他客户端/用户,的体验不是很好
Ping接口的心跳包是可以做实时校验的。正如此Issue描述的那样。使用 服务端RPC接口的 Ping
即可。
但是此Issue引伸出了另外一个问题,如果把心跳包的权限给客户端, 由客户端决定心跳频率并不是很好。
from frp.
我之前准备的实现思路是,每天定时吧frps重启,强制所有客户端重新链接,进行校验,但是这样会对其他客户端/用户,的体验不是很好
Ping接口的心跳包是可以做实时校验的。正如此Issue描述的那样。使用 服务端RPC接口的
Ping
即可。但是此Issue引伸出了另外一个问题,如果把心跳包的权限给客户端, 由客户端决定心跳频率并不是很好。
确实是有这个问题,如果使用Ping、NewUserConn的话,不是和优雅,
特别是ping 会使服务器变得很被动,而且会给服务器造成很大的压力,
我感觉最优雅的处理办法还是 【修改了frps的源码,提供了结束代理 方法、api(可以限制一下,只能本机调用)】
但是无奈go,我并不熟练,但是我目前也在看frp的源代码了
from frp.
我之前准备的实现思路是,每天定时吧frps重启,强制所有客户端重新链接,进行校验,但是这样会对其他客户端/用户,的体验不是很好
Ping接口的心跳包是可以做实时校验的。正如此Issue描述的那样。使用 服务端RPC接口的
Ping
即可。
但是此Issue引伸出了另外一个问题,如果把心跳包的权限给客户端, 由客户端决定心跳频率并不是很好。确实是有这个问题,如果使用Ping、NewUserConn的话,不是和优雅,
特别是ping 会使服务器变得很被动,而且会给服务器造成很大的压力,
我感觉最优雅的处理办法还是 【修改了frps的源码,提供了结束代理 方法、api(可以限制一下,只能本机调用)】
但是无奈go,我并不熟练,但是我目前也在看frp的源代码了
是的,较优解当然是可以提供一个由服务端主动关闭连接的api。
不过如果想工作量小一点的话,我想是增强 NewProxy
这个RPC接口,可以上报客户端的心跳配置,再由鉴权服务器进行修改下发,从服务端就可以控制客户端的上报频次。
from frp.
我之前准备的实现思路是,每天定时吧frps重启,强制所有客户端重新链接,进行校验,但是这样会对其他客户端/用户,的体验不是很好
Ping接口的心跳包是可以做实时校验的。正如此Issue描述的那样。使用 服务端RPC接口的
Ping
即可。
但是此Issue引伸出了另外一个问题,如果把心跳包的权限给客户端, 由客户端决定心跳频率并不是很好。确实是有这个问题,如果使用Ping、NewUserConn的话,不是和优雅,
特别是ping 会使服务器变得很被动,而且会给服务器造成很大的压力,
我感觉最优雅的处理办法还是 【修改了frps的源码,提供了结束代理 方法、api(可以限制一下,只能本机调用)】
但是无奈go,我并不熟练,但是我目前也在看frp的源代码了是的,较优解当然是可以提供一个由服务端主动关闭连接的api。
不过如果想工作量小一点的话,我想是增强
NewProxy
这个RPC接口,可以上报客户端的心跳配置,再由鉴权服务器进行修改下发,从服务端就可以控制客户端的上报频次。
这样确实也可以
强制客户端设置心跳在合理范围内,就允许创建这个代理,
但是这个也要涉及到改动frp代码。原版的frp是不支持这个功能的
当然这个要比做一个关闭代理api简单,
但是你这个 【 增强 NewProxy 】的方案 这个我突然想到了几个问题:
1.客户端 必须使用修改过配套的frpc,这对于用户来说不是很友好,而且有的设备比如软路由,他的frpc一般是系统内置的,更换起来并不方便。
2.假如我的客户端是经过我修改的,我的frpc,创建代理的时候的时候,请求参数里面的心跳时间直接设置成任意的,但是其实我的frpc客户端是不发送心跳的
from frp.
1.客户端 必须使用修改过配套的frpc,这对于用户来说不是很友好,而且有的设备比如软路由,他的frpc一般是系统内置的,更换起来并不方便。
2.假如我的客户端是经过我修改的,我的frpc,创建代理的时候的时候,请求参数里面的心跳时间直接设置成任意的,但是其实我的frpc客户端是不发送心跳的
这个得看源码怎么实现的了,我这一部分功能我还没去看过。
RPC接口是有替换能力的,直接从服务端拦截下发覆盖即可 文档引用
等有时间我看看提个pr
from frp.
1.客户端 必须使用修改过配套的frpc,这对于用户来说不是很友好,而且有的设备比如软路由,他的frpc一般是系统内置的,更换起来并不方便。
2.假如我的客户端是经过我修改的,我的frpc,创建代理的时候的时候,请求参数里面的心跳时间直接设置成任意的,但是其实我的frpc客户端是不发送心跳的这个得看源码怎么实现的了,我这一部分功能我还没去看过。
RPC接口是有替换能力的,直接从服务端拦截下发覆盖即可 文档引用
等有时间我看看提个pr
我等测试一下这个的效果,如果服务器可以直接拦截覆盖,这样看起来就没多大的问题了,我有时间测试一下,效果如何
from frp.
1.客户端 必须使用修改过配套的frpc,这对于用户来说不是很友好,而且有的设备比如软路由,他的frpc一般是系统内置的,更换起来并不方便。
2.假如我的客户端是经过我修改的,我的frpc,创建代理的时候的时候,请求参数里面的心跳时间直接设置成任意的,但是其实我的frpc客户端是不发送心跳的这个得看源码怎么实现的了,我这一部分功能我还没去看过。
RPC接口是有替换能力的,直接从服务端拦截下发覆盖即可 文档引用
等有时间我看看提个pr
我在【 https://gofrp.org/zh-cn/docs/features/common/server-plugin/#%E6%8E%A5%E5%8F%A3 】里面并没有找到,那个RPC 请求请求,会携带客户端的心跳时间配置,以及如何修改返回客户端配置
如果可以的话,方便提供一个示例么
from frp.
1.客户端 必须使用修改过配套的frpc,这对于用户来说不是很友好,而且有的设备比如软路由,他的frpc一般是系统内置的,更换起来并不方便。
2.假如我的客户端是经过我修改的,我的frpc,创建代理的时候的时候,请求参数里面的心跳时间直接设置成任意的,但是其实我的frpc客户端是不发送心跳的这个得看源码怎么实现的了,我这一部分功能我还没去看过。
RPC接口是有替换能力的,直接从服务端拦截下发覆盖即可 文档引用
等有时间我看看提个pr我在【 https://gofrp.org/zh-cn/docs/features/common/server-plugin/#%E6%8E%A5%E5%8F%A3 】里面并没有找到,那个RPC 请求请求,会携带客户端的心跳时间配置,以及如何修改返回客户端配置
如果可以的话,方便提供一个示例么
你的问题,正如此issue最开始的描述。但是那几个rpc接口好像都不会上传心跳包的设置,也就无法做到服务端下发修改覆盖。
如果需要携带此参数需要修改源码提交pr,这是我认为完成需求最简便的方法。
关于您说的 如何修改返回客户端配置, 请查看文档中关于RPC返回替换部分描述。
允许且需要替换操作内容
{
"unchange": false,
"content": {
... // 替换后的操作信息,格式必须和请求时的一致
}
}
from frp.
1.客户端 必须使用修改过配套的frpc,这对于用户来说不是很友好,而且有的设备比如软路由,他的frpc一般是系统内置的,更换起来并不方便。
2.假如我的客户端是经过我修改的,我的frpc,创建代理的时候的时候,请求参数里面的心跳时间直接设置成任意的,但是其实我的frpc客户端是不发送心跳的这个得看源码怎么实现的了,我这一部分功能我还没去看过。
RPC接口是有替换能力的,直接从服务端拦截下发覆盖即可 文档引用
等有时间我看看提个pr我在【 https://gofrp.org/zh-cn/docs/features/common/server-plugin/#%E6%8E%A5%E5%8F%A3 】里面并没有找到,那个RPC 请求请求,会携带客户端的心跳时间配置,以及如何修改返回客户端配置
如果可以的话,方便提供一个示例么你的问题,正如此issue最开始的描述。
但是那几个rpc接口好像都不会上传心跳包的设置,也就无法做到服务端下发修改覆盖。
如果需要携带此参数需要修改源码提交pr,这是我认为完成需求最简便的方法。关于您说的 如何修改返回客户端配置, 请查看文档中关于RPC返回替换部分描述。
允许且需要替换操作内容 { "unchange": false, "content": { ... // 替换后的操作信息,格式必须和请求时的一致 } }
比如我要把心跳包设置为10 您看这样对吗
{
"unchange": False,
"content": {'user': {'user': 'fake',"transport.heartbeatInterval ":"10", 'metas': {'token': 'fake', 'version': '1.0.0'}, 'run_id': '705bc8dfd7d73481'}}
}
我这样设置客户端似乎并没有生效,您看下是不是哪里不对
from frp.
1.客户端 必须使用修改过配套的frpc,这对于用户来说不是很友好,而且有的设备比如软路由,他的frpc一般是系统内置的,更换起来并不方便。
2.假如我的客户端是经过我修改的,我的frpc,创建代理的时候的时候,请求参数里面的心跳时间直接设置成任意的,但是其实我的frpc客户端是不发送心跳的这个得看源码怎么实现的了,我这一部分功能我还没去看过。
RPC接口是有替换能力的,直接从服务端拦截下发覆盖即可 文档引用
等有时间我看看提个pr我在【 https://gofrp.org/zh-cn/docs/features/common/server-plugin/#%E6%8E%A5%E5%8F%A3 】里面并没有找到,那个RPC 请求请求,会携带客户端的心跳时间配置,以及如何修改返回客户端配置
如果可以的话,方便提供一个示例么你的问题,正如此issue最开始的描述。
但是那几个rpc接口好像都不会上传心跳包的设置,也就无法做到服务端下发修改覆盖。
如果需要携带此参数需要修改源码提交pr,这是我认为完成需求最简便的方法。
关于您说的 如何修改返回客户端配置, 请查看文档中关于RPC返回替换部分描述。允许且需要替换操作内容 { "unchange": false, "content": { ... // 替换后的操作信息,格式必须和请求时的一致 } }
比如我要把心跳包设置为10 您看这样对吗 { "unchange": False, "content": {'user': {'user': 'fake',"transport.heartbeatInterval ":"10", 'metas': {'token': 'fake', 'version': '1.0.0'}, 'run_id': '705bc8dfd7d73481'}} }
我这样设置客户端似乎并没有生效,您看下是不是哪里不对
请仔细看此issue提供的问题以及刚才给你回复的comment,其中有提到
... // 替换后的操作信息,格式必须和请求时的一致
现在的问题是 客户端都没有上报这个参数,你直接进行下发自然不会生效。
from frp.
1.客户端 必须使用修改过配套的frpc,这对于用户来说不是很友好,而且有的设备比如软路由,他的frpc一般是系统内置的,更换起来并不方便。
2.假如我的客户端是经过我修改的,我的frpc,创建代理的时候的时候,请求参数里面的心跳时间直接设置成任意的,但是其实我的frpc客户端是不发送心跳的这个得看源码怎么实现的了,我这一部分功能我还没去看过。
RPC接口是有替换能力的,直接从服务端拦截下发覆盖即可 文档引用
等有时间我看看提个pr我在【 https://gofrp.org/zh-cn/docs/features/common/server-plugin/#%E6%8E%A5%E5%8F%A3 】里面并没有找到,那个RPC 请求请求,会携带客户端的心跳时间配置,以及如何修改返回客户端配置
如果可以的话,方便提供一个示例么你的问题,正如此issue最开始的描述。
但是那几个rpc接口好像都不会上传心跳包的设置,也就无法做到服务端下发修改覆盖。
如果需要携带此参数需要修改源码提交pr,这是我认为完成需求最简便的方法。
关于您说的 如何修改返回客户端配置, 请查看文档中关于RPC返回替换部分描述。允许且需要替换操作内容 { "unchange": false, "content": { ... // 替换后的操作信息,格式必须和请求时的一致 } }
比如我要把心跳包设置为10 您看这样对吗 { "unchange": False, "content": {'user': {'user': 'fake',"transport.heartbeatInterval ":"10", 'metas': {'token': 'fake', 'version': '1.0.0'}, 'run_id': '705bc8dfd7d73481'}} }
我这样设置客户端似乎并没有生效,您看下是不是哪里不对请仔细看此issue提供的问题以及刚才给你回复的comment,其中有提到
... // 替换后的操作信息,格式必须和请求时的一致
现在的问题是 客户端都没有上报这个参数,你直接进行下发自然不会生效。
好的,了解了,我以为是客户端有上报呢,感谢大佬
from frp.
NPS不就是服务端控制的么
from frp.
Related Issues (20)
- frpc自启动出错 HOT 1
- frp http请求 请求头丢失怎么处理呀
- 配置的http请求,内网穿透后请求头丢失导致无法解析 HOT 1
- 我需要直接把配置文件一起编译,请问需要如何做? HOT 4
- FRPC的客户端有其他语言的实现吗?或者说Client的c,c#等sdk实现不 HOT 2
- 希望能控制 server 端的监听地址。 HOT 1
- 高版本(0.58.1和0.59)frps,在连接。到达心跳时间后会断开 HOT 2
- frpc 启动报错 failed to parse proxy proxies.plugin, err: invalid type [https2http] HOT 1
- [Feature Request] 有没有通过dashboard 快速开关某些代理的方法 HOT 1
- frps和frpc点对点配置,挂载的三个ssh服务,会不定期同时中断。 HOT 2
- 新版本frpc以及frps在Windows7 SP1 64位旗舰版无法运行。请遇到该问题的用户知悉,frpc和frps不支持win7。可以升级Windows server2016 HOT 1
- Microsoft Defender 报告病毒 HOT 1
- [Feature Request] is it possible to support multiple mqtt clients if its not already supported
- [Feature Request] frps和frpc部署后,服务端和客户端运行正常,就是无法访问!!
- VPS允许了端口策略和端口映射,系统内部端口也放行,依然无法访问!
- [sharing ftp over frp demo][ frp之ftp案例分享 ] 227 Entering Passive Mode( IP, xxx, xxx ) HOT 3
- frp跑不满带宽 HOT 2
- [Feature Request] 基于uri路径的http代理模式 HOT 2
- [Feature Request] Support for URI Stripping in HTTP Proxies HOT 2
- FRP with SSL/HTTPS failed to connect HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from frp.