frp

Infrastructure & DevOpsApache-2.0

A fast reverse proxy that exposes a local server behind NAT or a firewall to the internet.

Latest v0.71.0 · by fatedierWritten in GoWebsitefatedier/frpRSS

Changelog grade

A

Groups changes under headings like Added and Fixed, and follows Semantic Versioning

96 of 100 · 5 releases graded · See the breakdown

Release activity

Release activity — 9 releases across 9 days in the last year. Each cell is one day; darker means more releases that day. Older weeks are hidden at this screen width.
JulAugSepOct
SundayNo releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026No releases on Aug 16, 2026No releases on Aug 23, 2026No releases on Aug 30, 2026No releases on Sep 6, 2026No releases on Sep 13, 2026No releases on Sep 20, 2026No releases on Sep 27, 2026No releases on Oct 4, 2026
MondayNo releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 2026No releases on Aug 10, 2026No releases on Aug 17, 2026No releases on Aug 24, 2026No releases on Aug 31, 2026No releases on Sep 7, 2026No releases on Sep 14, 2026No releases on Sep 21, 2026No releases on Sep 28, 2026No releases on Oct 5, 2026
TuesdayNo releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026No releases on Aug 18, 2026No releases on Aug 25, 2026No releases on Sep 1, 2026No releases on Sep 8, 2026No releases on Sep 15, 2026No releases on Sep 22, 2026No releases on Sep 29, 2026No releases on Oct 6, 2026
WednesdayNo releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026No releases on Aug 12, 2026No releases on Aug 19, 2026No releases on Aug 26, 2026No releases on Sep 2, 2026No releases on Sep 9, 2026No releases on Sep 16, 2026No releases on Sep 23, 2026No releases on Sep 30, 2026No releases on Oct 7, 2026
ThursdayNo releases on Jun 25, 2026No releases on Jul 2, 2026No releases on Jul 9, 2026No releases on Jul 16, 20261 release on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026No releases on Aug 13, 2026No releases on Aug 20, 2026No releases on Aug 27, 2026No releases on Sep 3, 2026No releases on Sep 10, 2026No releases on Sep 17, 2026No releases on Sep 24, 2026No releases on Oct 1, 2026No releases on Oct 8, 2026
FridayNo releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 20261 release on Aug 14, 2026No releases on Aug 21, 2026No releases on Aug 28, 2026No releases on Sep 4, 2026No releases on Sep 11, 2026No releases on Sep 18, 2026No releases on Sep 25, 2026No releases on Oct 2, 2026No releases on Oct 9, 2026
SaturdayNo releases on Jun 27, 2026No releases on Jul 4, 20261 release on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026No releases on Aug 15, 2026No releases on Aug 22, 2026No releases on Aug 29, 2026No releases on Sep 5, 2026No releases on Sep 12, 2026No releases on Sep 19, 2026No releases on Sep 26, 2026No releases on Oct 3, 2026

9 releases in the last year

Changelog

v0.71.0

Latest
Added 1
  • UDP packet payloads for ordinary UDP proxies and SUDP now use a dedicated binary codec when frpc and frps successfully negotiate the capability under wire protocol v2, using a more compact wire representation
Fixed 3
  • Fixed a server panic and remote denial of service caused by a client sending a negative pool_count by rejecting negative values before work-connection pool resources are allocated
  • Fixed frpc verify ignoring configured featureGates, which caused VirtualNet configurations to be rejected even when the feature was enabled
  • Fixed a case-insensitive validation bypass that allowed customDomains under the configured subDomainHost to be registered using mixed-case domain names

From frp

Features
  • UDP packet payloads for ordinary UDP proxies and SUDP now use a dedicated binary codec when frpc and frps successfully negotiate the capability under wire protocol v2, using a more compact wire representation. Wire protocol v1 remains JSON; wire protocol v2 falls back to JSON UDPPacket when the peer does not support or did not negotiate the capability.
Fixes
  • Fixed a server panic and remote denial of service caused by a client sending a negative pool_count. Negative values are now rejected before work-connection pool resources are allocated.
  • Fixed frpc verify ignoring configured featureGates, which caused VirtualNet configurations to be rejected even when the feature was enabled.
  • Fixed a case-insensitive validation bypass that allowed customDomains under the configured subDomainHost to be registered using mixed-case domain names.
View originalPermalink
How v0.71.0 went

v0.70.1

Fixed 3
  • HTTP vhost servers no longer support HTTP/1.1 Upgrade: h2c requests
  • Fixed control-session replacement leaks when frpc reconnects through a half-open TCP multiplexed connection
  • Fixed an SSH tunnel gateway panic when handling malformed exec requests
View originalRead the notes
How v0.70.1 went

v0.70.0

Added 1
  • Expand frps dashboard API v2 migration across Clients, Proxies, Server Overview, Client Detail, and Proxy Detail with paginated users/clients/proxies, detail data, proxy traffic history, server system info, offline proxy statistics pruning, server-side pagination, search, and proxy type filtering
Fixed 3
  • WebSocket and WSS tunnel payloads are now sent as binary frames to avoid disconnects through RFC-compliant intermediaries that validate text frames as UTF-8
  • The tls2raw client plugin now writes the proxy protocol header to the local raw connection when proxy protocol is enabled
  • frpc now rejects duplicate proxy and visitor names in config files instead of silently overwriting earlier entries
View originalRead the notes
How v0.70.0 went

v0.69.1

Changed 3
  • transport.wireProtocol = "v2" now applies to UDP-based proxy payloads including ordinary UDP and SUDP for consistent payload framing
  • Improved SUDP compatibility during mixed transport.wireProtocol deployments to allow frps to bridge payloads between v1/default and v2 SUDP clients
  • XTCP work connection NatHoleSid messages now follow the selected transport.wireProtocol
View originalRead the notes
How v0.69.1 went

v0.69.0

Added 3
  • Added `transport.wireProtocol` configuration option for frpc to select between wire protocol v1 and v2
  • Added client protocol visibility in frps dashboard and `/api/clients` API showing negotiated protocol version
  • Wire protocol v2 negotiates AEAD control-channel encryption with support for xchacha20-poly1305 and aes-256-gcm algorithms
Deprecated 1
  • Wire protocol v1 is deprecated and will be removed in v0.78.0 or later when v2 becomes the default
View originalRead the notes
How v0.69.0 went

v0.68.1

Changed 1
  • Proxy-style authentication failures now return 407 Proxy Authentication Required
Security 1
  • Fixed a configuration-dependent authentication bypass in HTTP proxies when routeByHTTPUser is used together with httpUser and httpPassword for proxy-style requests
View originalRead the notes
How v0.68.1 went

v0.68.0

Added 2
  • Added a built-in store capability for frpc, including persisted store source, Store CRUD admin APIs with runtime reload, and Store management pages in the frpc web dashboard
  • Added noweb build tag to allow compiling without frontend assets
Changed 7
  • Kept proxy and visitor names as raw config names during completion, moving user-prefix handling to explicit wire-level naming logic
  • Build system now auto-detects missing web asset directories and skips embedding, allowing a fresh clone to build without running make web first
  • Dashboard gracefully returns 404 when assets are not embedded
  • Improved TOML config parsing errors to return immediately with parser position details including line and column numbers instead of falling through to YAML/JSON parsing
  • TOML type mismatches now report field-level errors without misleading line numbers
  • OIDC auth now caches the access token and refreshes it before expiry, avoiding a new token request on every heartbeat
  • OIDC auth falls back to per-request token fetch when the provider omits expires_in
View originalRead the notes
How v0.68.0 went

v0.67.0

Added 2
  • frpc now supports a clientID option to uniquely identify client instances
  • Server dashboard displays all connected clients with their online/offline status, connection history, and metadata
Changed 1
  • Redesigned the frp web dashboard with a modern UI, dark mode support, and improved navigation
Fixed 1
  • Fixed UDP proxy protocol sending header on every packet instead of only the first packet of each session
View originalRead the notes
How v0.67.0 went

v0.66.0

Added 3
  • HTTPS proxies now support load balancing groups with loadBalancer.group and loadBalancer.groupKey to share the same custom domain and distribute traffic across multiple backend services
  • Individual frpc proxies and visitors now accept an enabled flag (defaults to true) to disable specific entries without relying on the global start list
  • OIDC authentication now supports a tokenSource field with type = "file" to read a token from a file or type = "exec" to run an external command and capture its stdout as the token, requiring the --allow-unsafe=TokenSourceExec CLI flag
Changed 1
  • VirtualNet implemented intelligent reconnection with exponential backoff, increasing reconnect interval from 60s to 300s max when connection errors occur repeatedly, while normal disconnections reconnect at 10s intervals
Fixed 1
  • Fix deadlock issue when TCP connection is closed that previously caused sending messages to block forever if the connection handler had already stopped
View originalRead the notes
How v0.66.0 went

v0.65.0

Added 3
  • Add NAT traversal configuration options for XTCP proxies and visitors to support disabling assisted addresses and avoid using slow VPN connections during NAT hole punching
  • Add OIDC client configuration options for custom TLS certificate verification and proxy settings, including trustedCaFile, insecureSkipVerify, and proxyURL for OIDC token endpoint connections
  • Add proxy_counts_detailed Prometheus metric that includes proxy type and proxy name labels for monitoring individual proxy connections
View originalRead the notes
How v0.65.0 went

v0.64.0

Added 1
  • Support tokenSource for loading authentication tokens from files
Fixed 1
  • Fix SSH tunnel gateway incorrectly binding to proxyBindAddr instead of bindAddr, which caused external connections to fail when proxyBindAddr was set to 127.0.0.1
View originalRead the notes
How v0.64.0 went

Changelog grade

How grades work
A

96 of 100 · 5 releases graded, May 21, 2026 to Aug 14, 2026

CriterionScoreWeightWhere it fell short
Notes say what changed100%30
Version numbers100%20
Changes grouped by type100%20
Where the notes live80%20v0.71.0, v0.70.1
A page per release100%10

Read from: release feed (5).

Grades cover the last 90 days of stable releases, or the latest 5 if there were fewer, going back up to a year. They update daily. Publishing release notes as a Declarative Changelog, with changes grouped by type, is the path to an A+.

frp changelog grade badge
[![frp changelog grade on whatsnew.fyi](https://whatsnew.fyi/product/frp/grade.svg)](https://whatsnew.fyi/product/frp#changelog-grade)
View all

Discussion

If you publish frp, you can claim this product by proving you administer its repository.