Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

访问端结束时如果proxy连接数为0时关闭该端口 #2107

Open
hualongsheng1988 opened this issue Nov 24, 2020 · 6 comments
Open

访问端结束时如果proxy连接数为0时关闭该端口 #2107

hualongsheng1988 opened this issue Nov 24, 2020 · 6 comments
Labels

Comments

@hualongsheng1988
Copy link

hualongsheng1988 commented Nov 24, 2020

proxy 连接数是访问端访问的数量(如远程桌面),当访问端退出时数量减1,如果数量减为0时,服务端关闭该proxy的端口。(目前不关闭端口)

@Becods
Copy link
Contributor

Becods commented Nov 24, 2020

理论上来讲,当proxy的端口关闭的时候,访问端将无法主动连接至服务端,这时只能通过某种方式重新打开端口(listen),例如hook
一般情况下并不重要关闭端口,除非是为了安全或者端口不够用

@hualongsheng1988
Copy link
Author

理论上来讲,当proxy的端口关闭的时候,访问端将无法主动连接至服务端,这时只能通过某种方式重新打开端口(listen),例如hook
一般情况下并不重要关闭端口,除非是为了安全或者端口不够用

现在公司限制了端口数量,所以需要这个功能,即没有访问端使用时主动关闭端口

@fatedier
Copy link
Owner

我们最近也在考虑一个新功能: 一次性的 proxy。

目的是解决某些特殊场景下的安全问题,例如将某个服务暴露出去给特定的用户访问,一旦某个用户访问后,就不再允许其他人访问,或者可以支持指定超时时间后关闭,或者周期性开放。

目前细节还没有想的太清楚,有想法的话可以补充一下。我大致上想到的几个点:

  1. 只接受单个连接。当一个用户连接建立后,不再接受新的连接,当此连接断开后,proxy 关闭。
  2. 只接受第一个连接的 IP,后续所有的连接的 IP 如果与此 IP 不一致,则拒绝。
  3. 支持给一次性 proxy 设置一个超时,达到指定时间后,proxy 关闭。
  4. 支持设置一个周期性的时间,例如每日 9点 - 10 点,其余时间 proxy 关闭。

另外一个问题是,如何触发开启一次性 proxy,可能的方法:

  1. frpc 提供 API 和命令行相关参数触发。
  2. frps 对外提供转发控制接口的能力,将用户控制请求转发到指定的 frpc 触发,由 frpc 做鉴权。

@yuyulei
Copy link
Contributor

yuyulei commented Nov 25, 2020

"只接受第一个连接的 IP" 更像是指定用户访问的 proxy ,跟一次性的 proxy 不是同一回事。

@hualongsheng1988
Copy link
Author

作者您好我总结一下
1、proxy连接数仅在由非0变为0时 触发关闭端口。
2、proxy连接失效 如10分钟连接数始终为0 关闭端口(这个有点像Web服务的session失效)

@cnazev
Copy link

cnazev commented Apr 15, 2021

不知道这个功能在日程上了么?
我也在寻求这个功能
为安全着想
之前想的是一段时间没有链接活动后直接关闭进程
需要的时候再ssh服务器手动开启frps服务
但看作者的总结更好 可以更好满足需求

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants