FRP Versions Save

A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.

v0.58.1

1 month ago

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

1 month ago

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 header foo: bar to the response.

Fixes

  • When an HTTP proxy request times out, it returns 504 instead of 404 now.

v0.57.0

2 months ago

Features

  • https2http and https2https plugin now supports X-Forwared-For header.

Fixes

  • X-Forwared-For header is now correctly set in the request to the backend server for proxy type http.

v0.56.0

3 months ago

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

3 months ago

No feature changes, just a fix for the issue of no released assets in version 0.55.0.

v0.55.0

3 months ago

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 to TLS 1.2.
  • The default value of --strict-config has been changed from false to true. 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 version v0.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

5 months ago

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 and ClearOfflineProxies 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

6 months ago

Fixes

  • frpc has a certain chance to panic when login: close of closed channel.

v0.53.0

6 months ago

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 and http_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 contains HeartBeats, if obtaining AccessToken fails, the application will be unresponsive.

v0.52.3

8 months ago

Fixes

  • admin_user is not effective in the INI configuration.