A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
APACHE-2.0 License
Bot releases are hidden (Show)
tls2raw
: Enables TLS termination and forwarding of decrypted raw traffic to local service.loginFailExit = false
, the frpc stop command cannot be stopped correctly if the server is not successfully connected after startup.Published by fatedier 3 months ago
enableHTTP2
option to control whether to enable HTTP/2 in plugin https2http and https2https, default is true.Misdirected Request
if host not match sni.Published by fatedier 5 months ago
transport.tcpMuxKeepaliveInterval
from 60 to 30.Published by fatedier 5 months ago
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.
http
proxy can modify the response header. For example, responseHeaders.set.foo = "bar"
will add a new header foo: bar
to the response.Published by fatedier 6 months ago
https2http
and https2https
plugin now supports X-Forwared-For
header.X-Forwared-For
header is now correctly set in the request to the backend server for proxy type http.Published by fatedier 7 months ago
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.
Published by fatedier 7 months ago
No feature changes, just a fix for the issue of no released assets in version 0.55.0.
Published by fatedier 7 months ago
1.22
. In the new version of Go, the default minimum supported TLS version has been changed to TLS 1.2
.--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
.Published by fatedier 9 months ago
--remote_port
is replaced with --remote-port
.Refresh
and ClearOfflineProxies
buttons have been added to the Dashboard of frps.Published by fatedier 10 months ago
Published by fatedier 10 months ago
--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.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.http_user
and http_pwd
.allow_users
.oidc
and auth.additionalScopes contains HeartBeats
, if obtaining AccessToken fails, the application will be unresponsive.Published by fatedier 12 months ago
admin_user
is not effective in the INI configuration.Published by fatedier 12 months ago
Published by fatedier about 1 year ago
transport.tls.disableCustomTLSFirstByte
doesn't have any effect.natHoleStunServer
is missing a default value.Published by fatedier about 1 year ago
frpc stcp --role=visitor xxx
to frpc stcp visitor xxx
.server_addr
in the command line, no longer including the port. Added the server_port
parameter to configure the port.Published by fatedier about 1 year ago
Published by fatedier about 1 year ago
completion
command for shell completions.use_compression
will cause some requests to fail.Published by fatedier about 1 year ago
tcp_keepalive
= -1 in frps.Published by fatedier over 1 year ago
protocol = wss
.Published by fatedier over 1 year ago
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.
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.MaxStreamWindowSize
for yamux to 6MB, improving traffic forwarding rate in high-latency scenarios.xtcp
.