[GH-ISSUE #5824] Feature Request: Proxy Protocol v2 for UDP in L4 Reverse Proxy #11139

Open
opened 2026-08-05 01:28:38 -04:00 by saavagebueno · 4 comments
Owner

Originally created by @noticebrick on GitHub (Apr 8, 2026).
Original GitHub issue: https://github.com/netbirdio/netbird/issues/5824

Is your feature request related to a problem? Please describe.
I am trying to use the reverse proxy with an application that requires both UDP and Proxy Protocol (for preserving the client's IP). It's not yet implemented in netbird.

Describe the solution you'd like
Implement Proxy Protocol v2 for UDP reverse proxy.

Describe alternatives you've considered
TCP already have Proxy Protocol, but the application I am using requires UDP.

Additional context
I can provide additional context upon request.

Originally created by @noticebrick on GitHub (Apr 8, 2026). Original GitHub issue: https://github.com/netbirdio/netbird/issues/5824 **Is your feature request related to a problem? Please describe.** I am trying to use the reverse proxy with an application that requires both UDP and Proxy Protocol (for preserving the client's IP). It's not yet implemented in netbird. **Describe the solution you'd like** Implement Proxy Protocol v2 for UDP reverse proxy. **Describe alternatives you've considered** TCP already have Proxy Protocol, but the application I am using requires UDP. **Additional context** I can provide additional context upon request.
saavagebueno added the feature-request label 2026-08-05 01:28:38 -04:00
Author
Owner

@lixmal commented on GitHub (Apr 8, 2026):

This is possible but non-standard. Which application does support that and in what way (first datagram of a "session" only or every datagram)?

<!-- gh-comment-id:4205098224 --> @lixmal commented on GitHub (Apr 8, 2026): This is possible but non-standard. Which application does support that and in what way (first datagram of a "session" only or every datagram)?
Author
Owner

@noticebrick commented on GitHub (Apr 8, 2026):

I am using GeyserMC, which is a proxy that allows Minecraft Bedrock players to join Minecraft Java. I have actually tried to implemented it, with the help of AI, and it works pretty well.

e942716532

<!-- gh-comment-id:4205117143 --> @noticebrick commented on GitHub (Apr 8, 2026): I am using GeyserMC, which is a proxy that allows Minecraft Bedrock players to join Minecraft Java. I have actually tried to implemented it, with the help of AI, and it works pretty well. https://github.com/noticebrick/netbird/commit/e942716532ed30e0b1081d70a53fbcf8cbf2aa41
Author
Owner

@noticebrick commented on GitHub (Apr 8, 2026):

It's implemented around the proxy protocol standard by HAProxy.

https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt

<!-- gh-comment-id:4205132371 --> @noticebrick commented on GitHub (Apr 8, 2026): It's implemented around the proxy protocol standard by HAProxy. https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt
Author
Owner

@Darkhand81 commented on GitHub (Jul 21, 2026):

+1 for this. UDP PROXY protocol v2 support would let backends behind the reverse proxy see the original client IP through the tunnel, rather than the proxy's 100.64.0.0/10 address. TCP already has PROXY protocol v2, so adding it for UDP L4 services would be helpful.

<!-- gh-comment-id:5030901137 --> @Darkhand81 commented on GitHub (Jul 21, 2026): +1 for this. UDP PROXY protocol v2 support would let backends behind the reverse proxy see the original client IP through the tunnel, rather than the proxy's 100.64.0.0/10 address. TCP already has PROXY protocol v2, so adding it for UDP L4 services would be helpful.
Sign in to join this conversation.
No Label feature-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DYNR/netbird#11139