[GH-ISSUE #4800] [Feature Request] frps clustering #3790

Open
opened 2026-05-05 14:25:38 -06:00 by gitea-mirror · 3 comments
Owner

Originally created by @adyanth on GitHub (May 20, 2025).
Original GitHub issue: https://github.com/fatedier/frp/issues/4800

Describe the feature request

I would like to deploy multiple frps servers at different locations, have the frpc connect to the nearest ones, but allow the users connect to connect to whichever frps is near to them but still reach the frpc.

To say differently, allow frps to talk to each other and route traffic between them to reach the client.

User -> frps A -> frps B -> frpc

This would also prevent a single point of failure by having multiple frps instances, and the clients should be able to connect to an active one in case the preferred one goes down.

Describe alternatives you've considered

I think something ad hoc might be done by running an frpc where the frps B is running in the above example, but not sure if it would work

User -> frps A -> (frpc, frpsB) -> frpc

Affected area

  • Docs
  • Installation
  • Performance and Scalability
  • Security
  • User Experience
  • Test and Release
  • Developer Infrastructure
  • Client Plugin
  • Server Plugin
  • Extensions
  • Others
Originally created by @adyanth on GitHub (May 20, 2025). Original GitHub issue: https://github.com/fatedier/frp/issues/4800 ### Describe the feature request I would like to deploy multiple `frps` servers at different locations, have the `frpc` connect to the nearest ones, but allow the users connect to connect to whichever `frps` is near to them but still reach the `frpc`. To say differently, allow `frps` to talk to each other and route traffic between them to reach the client. User -> frps A -> frps B -> frpc This would also prevent a single point of failure by having multiple frps instances, and the clients should be able to connect to an active one in case the preferred one goes down. ### Describe alternatives you've considered I think something ad hoc might be done by running an frpc where the frps B is running in the above example, but not sure if it would work User -> frps A -> (frpc, frpsB) -> frpc ### Affected area - [ ] Docs - [ ] Installation - [x] Performance and Scalability - [ ] Security - [ ] User Experience - [ ] Test and Release - [ ] Developer Infrastructure - [ ] Client Plugin - [ ] Server Plugin - [ ] Extensions - [ ] Others
gitea-mirror added the
proposal
label 2026-05-05 14:25:38 -06:00
Author
Owner

@fatedier commented on GitHub (May 20, 2025):

This is a relatively complex feature, and there are no plans for it at the moment.
Different types of protocols and proxies may require special handling.

<!-- gh-comment-id:2893085999 --> @fatedier commented on GitHub (May 20, 2025): This is a relatively complex feature, and there are no plans for it at the moment. Different types of protocols and proxies may require special handling.
Author
Owner

@adyanth commented on GitHub (May 20, 2025):

I agree. Issue could be up for tracking in the future, or if you don't think it is feasible to be implemented in frp, feel free to close!

<!-- gh-comment-id:2893091325 --> @adyanth commented on GitHub (May 20, 2025): I agree. Issue could be up for tracking in the future, or if you don't think it is feasible to be implemented in frp, feel free to close!
Author
Owner

@jjhesk commented on GitHub (Jun 27, 2025):

up for discussion,
plan 1, this is actually a CDN that given each frps an unique IP or domain. client can actually switch between them.
plan 2, given this convention as auto reconnection mechanism, all frpcs to route from the nearby peer for stable traffic, looks like the middle layer is the actualy CDN that allow the visited frps to choose from different nodes.

<!-- gh-comment-id:3011860401 --> @jjhesk commented on GitHub (Jun 27, 2025): up for discussion, plan 1, this is actually a CDN that given each frps an unique IP or domain. client can actually switch between them. plan 2, given this convention as auto reconnection mechanism, all frpcs to route from the nearby peer for stable traffic, looks like the middle layer is the actualy CDN that allow the visited frps to choose from different nodes.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/frp#3790
No description provided.