frp

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

APACHE-2.0 License

Downloads
203
Stars
80.7K
Committers
101

Bot releases are hidden (Show)

frp - v0.60.0 Latest Release

Published by fatedier about 2 months ago

Features

  • Added a new plugin tls2raw: Enables TLS termination and forwarding of decrypted raw traffic to local service.
  • Added a default timeout of 30 seconds for the frpc subcommands to prevent commands from being stuck for a long time due to network issues.

Fixes

  • Fixed the issue that when loginFailExit = false, the frpc stop command cannot be stopped correctly if the server is not successfully connected after startup.
frp - v0.59.0

Published by fatedier 3 months ago

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.
frp - v0.58.1

Published by fatedier 5 months 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.
frp - v0.58.0

Published by fatedier 5 months 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.
frp - v0.57.0

Published by fatedier 6 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.
frp - v0.56.0

Published by fatedier 7 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.
frp - v0.55.1

Published by fatedier 7 months ago

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

frp - v0.55.0

Published by fatedier 7 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.
frp - v0.54.0

Published by fatedier 9 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.
frp - v0.53.2

Published by fatedier 10 months ago

Fixes

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

Published by fatedier 10 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.
frp - v0.52.3

Published by fatedier 12 months ago

Fixes

  • admin_user is not effective in the INI configuration.
frp - v0.52.2

Published by fatedier 12 months ago

Fixes

  • Encryption and compression are not displayed correctly in the dashboard.
frp - v0.52.1

Published by fatedier about 1 year ago

Fixes

  • transport.tls.disableCustomTLSFirstByte doesn't have any effect.
  • The Server API did not return the data correctly.
  • The Dashboard is unable to display data.
  • natHoleStunServer is missing a default value.
frp - v0.52.0

Published by fatedier about 1 year ago

Features

  • Configuration: We now support TOML, YAML, and JSON for configuration. Please note that INI is deprecated and will be removed in future releases. New features will only be available in TOML, YAML, or JSON. Users wanting these new features should switch their configuration format accordingly. #2521

Breaking Changes

  • Change the way to start the visitor through the command line from frpc stcp --role=visitor xxx to frpc stcp visitor xxx.
  • Modified the semantics of the server_addr in the command line, no longer including the port. Added the server_port parameter to configure the port.
  • No longer support range ports mapping in TOML/YAML/JSON.
frp - v0.51.3

Published by fatedier about 1 year ago

Features

  • Support Go 1.21.
frp - v0.51.2

Published by fatedier about 1 year ago

Features

  • Adds a completion command for shell completions.

Fixes

  • fix a goroutine leak issue caused by Login plugin timeout.
  • Fix an issue introduced in version 0.51.1, enabling use_compression will cause some requests to fail.
frp - v0.51.1

Published by fatedier about 1 year ago

Fixes

  • Fix the issue of not disabling tcp keepalive when configuring tcp_keepalive = -1 in frps.
  • Fix a race condition error.
frp - v0.51.0

Published by fatedier over 1 year ago

Features

  • frpc supports connecting to frps via the wss protocol by enabling the configuration protocol = wss.
  • frpc supports stopping the service through the stop command.

Improvements

  • service.Run supports passing in context.

Fixes

  • Fix an issue caused by a bug in yamux that prevents wss from working properly in certain plugins.
frp - v0.50.0

Published by fatedier over 1 year ago

Notes

For enhanced security, the default values for tls_enable and disable_custom_tls_first_byte have been set to true.

If you wish to revert to the previous default values, you need to manually set the values of these two parameters to false.

Features

  • Added support for allow_users in stcp, sudp, xtcp. By default, only the same user is allowed to access. Use * to allow access from any user. The visitor configuration now supports server_user to connect to proxies of other users.
  • Added fallback support to a specified alternative visitor when xtcp connection fails.

Improvements

  • Increased the default value of MaxStreamWindowSize for yamux to 6MB, improving traffic forwarding rate in high-latency scenarios.

Fixes

  • Fixed an issue where having proxies with the same name would cause previously working proxies to become ineffective in xtcp.
Package Rankings
Top 0.02% on Alpine-v3.18
Top 0.69% on Proxy.golang.org
Top 6.84% on Alpine-v3.16
Top 6.83% on Alpine-v3.17
Top 6.4% on Alpine-v3.15
Top 3.69% on Alpine-edge
Top 15.08% on Formulae.brew.sh
Badges
Extracted from project README
Build Status GitHub release Go Report Card GitHub Releases Stats