[GH-ISSUE #196] Feature-request: udp port multiplexing #93

Open
opened 2026-10-13 21:03:31 +00:00 by bsakaguchi · 0 comments
Owner

Originally created by @RTechSn on GitHub (Sep 16, 2026).
Original GitHub issue: https://github.com/amnezia-vpn/amneziawg-go/issues/196

Hi.
Let's look at a scenario when any UDP port gets blocked for some time after sending\receiving some amount of traffic.
But each time you make a new connection to a new port, you can still send some data.

I suggest implementing a port range option for peers with de-muxing the transport connection between multiple ports.

[Interface]
ListenPort = 10000-20000
[Peer]
Endpoint = 1.2.3.4:10000-20000

Next step would be making multiple connections and stagger them in time.
For each of multiple connections peers pick a random port number from specified range. When one of the connections gets blocked, packets would seamlessly go through another one.
When a dead connection is detected, peer makes a new one on a random port from the range.

Even better, if you could specify multiple IP's if your server has them.

[Peer]
Endpoint = 1.2.3.4:10000-20000, 5.6.7.8:15000-20000
Connections = 4

I've done some tests on a vibe-coded tunnel and it works even if you manage to send only a couple of kilobytes per connection.

Originally created by @RTechSn on GitHub (Sep 16, 2026). Original GitHub issue: https://github.com/amnezia-vpn/amneziawg-go/issues/196 Hi. Let's look at a scenario when any UDP port gets blocked for some time after sending\receiving some amount of traffic. But each time you make a new connection to a new port, you can still send some data. I suggest implementing a port range option for peers with de-muxing the transport connection between multiple ports. ``` [Interface] ListenPort = 10000-20000 ``` ``` [Peer] Endpoint = 1.2.3.4:10000-20000 ``` Next step would be making multiple connections and stagger them in time. For each of multiple connections peers pick a random port number from specified range. When one of the connections gets blocked, packets would seamlessly go through another one. When a dead connection is detected, peer makes a new one on a random port from the range. Even better, if you could specify multiple IP's if your server has them. ``` [Peer] Endpoint = 1.2.3.4:10000-20000, 5.6.7.8:15000-20000 Connections = 4 ``` I've done some tests on a vibe-coded tunnel and it works even if you manage to send only a couple of kilobytes per connection.
Sign in to join this conversation.
No labels
pull-request
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
amnezia-vpn/amneziawg-go#93
No description provided.