mirror of
https://github.com/fatedier/frp.git
synced 2026-05-15 08:05:49 -06:00
[PR #5299] Add Auto Transport Mode with IPv4/IPv6 probing and WSS support #5236
Labels
No labels
In Progress
WIP
WaitingForInfo
bug
doc
duplicate
easy
enhancement
future
help wanted
invalid
lifecycle/stale
need-issue-template
need-usage-help
no plan
proposal
pull-request
question
todo
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/frp#5236
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/fatedier/frp/pull/5299
Author: @ming79486
Created: 4/28/2026
Status: 🔄 Open
Base:
dev← Head:dev📝 Commits (9)
4077c1efeat: add auto transport selection37f3d25docs: simplify README for auto transport edition13cca68fix: harden auto transport config and validation664a7cfdocs: add minimal auto transport configs83b6415feat: probe auto transport over resolved ip families4d2dacedocs: update README for auto transport examplesf2c69b4fix: support wss auto transport over tls305818bfix: harden auto transport audit issues861c710merge upstream dev and resolve PR 5299 conflicts📊 Changes
53 files changed (+5592 additions, -1610 deletions)
View changed files
📝
README.md(+22 -1369)➖
README_zh.md(+0 -126)📝
client/api_router.go(+1 -0)➕
client/auto_transport.go(+1177 -0)➕
client/auto_transport_integration_test.go(+270 -0)➕
client/auto_transport_strategy.go(+136 -0)📝
client/control.go(+58 -2)📝
client/control_session.go(+48 -16)📝
client/service.go(+46 -3)📝
client/service_test.go(+756 -0)➕
conf/frpc_auto.toml(+40 -0)📝
conf/frpc_full_example.toml(+25 -1)➕
conf/frps_auto.toml(+31 -0)📝
conf/frps_full_example.toml(+12 -0)➕
doc/auto_transport.md(+326 -0)📝
pkg/config/legacy/client.go(+17 -2)📝
pkg/config/legacy/conversion.go(+30 -0)📝
pkg/config/legacy/server.go(+8 -0)📝
pkg/config/load.go(+11 -2)📝
pkg/config/load_test.go(+244 -0)...and 33 more files
📄 Description
WHY
This PR adds Auto Transport Mode for frp, allowing
frpcandfrpsto negotiate and select the best transport protocol when both sides settransport.protocol = "auto".Changes
tcp,kcp,quic,websocket, andwss.bindPortkcpBindPortquicBindPortbindPortfrpsandfrpc.Notes
transport.protocol = "auto".transport.proxyURLis configured on the client, candidates are restricted totcp.frps;frpclearns it from server advertisement during bootstrap.Tested
go test ./server -count=1go test ./client ./server ./pkg/config/v1 ./pkg/config/v1/validation -count=1go test ./pkg/config ./pkg/config/v1 ./pkg/config/v1/validation -count=1🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.