Releases: fatedier/frp
v0.59.0
Features
- Added a new plugin "http2http" which allows forwarding HTTP requests to another HTTP server, supporting options like local address binding, host header rewrite, and custom request headers.
- Added
enableHTTP2
option to control whether to enable HTTP/2 in plugin https2http and https2https, default is true.
Changes
- Plugin https2http & https2https: return 421
Misdirected Request
if host not match sni.
v0.58.1
Fixes
- Fixed an issue where HTTP/2 was not enabled for https2http and https2https plugins.
- Fixed the issue where the default values of INI configuration parameters are inconsistent with other configuration formats.
Changes
- Updated the default value of
transport.tcpMuxKeepaliveInterval
from 60 to 30. - On the Android platform, the Google DNS server is used only when the default DNS server cannot be obtained.
v0.58.0
Notable Changes
We have optimized the heartbeat mechanism when tcpmux is enabled (enabled by default). The default value of heartbeatInterval
has been adjusted to -1. This update ensures that when tcpmux is active, the client does not send additional heartbeats to the server. Since tcpmux incorporates its own heartbeat system, this change effectively reduces unnecessary data consumption, streamlining communication efficiency between client and server.
When connecting to frps versions older than v0.39.0 might encounter compatibility issues due to changes in the heartbeat mechanism. As a temporary workaround, setting the heartbeatInterval
to 30 can help maintain stable connectivity with these older versions. We recommend updating to the latest frps version to leverage full functionality and improvements.
Features
- Show tcpmux proxies on the frps dashboard.
http
proxy can modify the response header. For example,responseHeaders.set.foo = "bar"
will add a new headerfoo: bar
to the response.
Fixes
- When an HTTP proxy request times out, it returns 504 instead of 404 now.
v0.57.0
v0.56.0
Features
-
Support range ports mapping in TOML/YAML/JSON configuration file by using go template syntax.
For example:
{{- range $_, $v := parseNumberRangePair "6000-6006,6007" "6000-6006,6007" }} [[proxies]] name = "tcp-{{ $v.First }}" type = "tcp" localPort = {{ $v.First }} remotePort = {{ $v.Second }} {{- end }}
This will create 8 proxies such as
tcp-6000, tcp-6001, ... tcp-6007
. -
Health check supports custom request headers.
-
Enable compatibility mode for the Android system to solve the issues of incorrect log time caused by time zone problems and default DNS resolution failures.
Fixes
- Fix the issue of incorrect interval time for rotating the log by day.
- Disable quic-go's ECN support by default. It may cause issues on certain operating systems.
v0.55.1
v0.55.0
Notable Changes
- The minimum supported Go version has been updated to
1.22
. In the new version of Go, the default minimum supported TLS version has been changed toTLS 1.2
. - The default value of
--strict-config
has been changed fromfalse
totrue
. If your configuration file uses a non-existent configuration item or has a spelling error, the application will throw an error. This startup parameter was introduced in versionv0.53.0
. If you wish to continue using the old behavior, you need to explicitly set--strict-config=false
.
Features
- Proxy supports configuring annotations, which will be displayed in the frps dashboard.
Changes
- Removed dependencies on the forked version of kcp-go and beego log, kcp-go now uses the upstream version, and golib/log replaces beego log.
v0.54.0
Deprecation Notices
- Using an underscore in a flag name is deprecated and has been replaced by a hyphen. The underscore format will remain compatible for some time, until it is completely removed in a future version. For example,
--remote_port
is replaced with--remote-port
.
Features
- The
Refresh
andClearOfflineProxies
buttons have been added to the Dashboard of frps.
Fixes
- The host/domain matching in the routing rules has been changed to be case-insensitive.
v0.53.2
v0.53.0
Features
- The new command line parameter
--strict_config
has been added to enable strict configuration validation mode. It will throw an error for unknown fields instead of ignoring them. In future versions, we will set the default value of this parameter to true to avoid misconfigurations. - Support
SSH reverse tunneling
. With this feature, you can expose your local service without running frpc, only using SSH. The SSH reverse tunnel agent has many functional limitations compared to the frpc agent. The currently supported proxy types are tcp, http, https, tcpmux, and stcp. - The frpc tcpmux command line parameters have been updated to support configuring
http_user
andhttp_pwd
. - The frpc stcp/sudp/xtcp command line parameters have been updated to support configuring
allow_users
.
Fixes
- frpc: Return code 1 when the first login attempt fails and exits.
- When auth.method is
oidc
and auth.additionalScopes containsHeartBeats
, if obtaining AccessToken fails, the application will be unresponsive.