Server Configuration

Detailed configuration description for frp server.

ServerConfig

FieldTypeDescriptionRequired
authAuthServerConfigAuthentication configuration.No
bindAddrstringServer listening address for receiving frpc connections, default listens on 0.0.0.0.No
bindPortintServer listening port, default value is 7000.No
kcpBindPortintServer listening port for KCP protocol, used to receive frpc connections configured to use KCP protocol.No
quicBindPortintServer listening port for QUIC protocol, used to receive frpc connections configured to use QUIC protocol.No
proxyBindAddrstringProxy listening address, can make proxies listen on different network interface addresses, same as bindAddr by default.No
vhostHTTPPortintListening port for HTTP type proxies, must be enabled to support HTTP type proxies.No
vhostHTTPTimeoutintResponseHeader timeout for HTTP type proxies on the server side, default is 60s.No
vhostHTTPSPortintListening port for HTTPS type proxies, must be enabled to support HTTPS type proxies.No
tcpmuxHTTPConnectPortintListening port for tcpmux type proxies with httpconnect multiplexer.No
tcpmuxPassthroughboolWhether to pass through CONNECT requests for tcpmux type proxies.No
subDomainHoststringSubdomain suffix.No
custom404PagestringCustom 404 error page address.No
sshTunnelGatewaySSHTunnelGatewaySSH tunnel gateway configuration.No
webServerWebServerConfigServer Dashboard configuration.No
enablePrometheusboolWhether to provide Prometheus monitoring interface, will only take effect when webServer is also enabled.No
logLogConfigLog configuration.No
transportServerTransportConfigNetwork layer configuration.No
detailedErrorsToClientboolServer returns detailed error information to client, default is true.No
maxPortsPerClientintLimit the maximum number of simultaneous proxies for a single client, default is unlimited.No
userConnTimeoutintTimeout for waiting for client response after user establishes connection, in seconds, default is 10 seconds.No
udpPacketSizeintMaximum packet length supported when proxying UDP services, default is 1500. Server and client values need to be consistent.No
natholeAnalysisDataReserveHoursintRetention time for hole punching strategy data, default is 168 hours, i.e. 7 days.No
allowPorts[]PortsRangeServer ports allowed for proxy binding.No
httpPlugins[]HTTPPluginOptionsServer HTTP plugin configuration.No

AuthServerConfig

FieldTypeDescriptionRequired
methodstringAuthentication method. Options are token or oidc, default is token.No
additionalScopes[]stringAdditional scope for authentication information. Options are HeartBeats and NewWorkConnsNo
tokenstringEffective when method is token. Client needs to set the same value to pass authentication. Mutually exclusive with tokenSource field.No
tokenSourceValueSourceConfiguration for loading token from file. Mutually exclusive with token field.No
oidcAuthOIDCServerConfigOIDC authentication configuration.No

AuthOIDCServerConfig

FieldTypeDescriptionRequired
issuerstringNo
audiencestringNo
skipExpiryCheckboolNo
skipIssuerCheckboolNo

ServerTransportConfig

FieldTypeDescriptionRequired
tcpMuxKeepaliveIntervalintHeartbeat check interval time for tcp mux, in seconds.No
tcpKeepaliveintKeepalive interval time for underlying TCP connection with client, in seconds. Configure as negative number to disable.No
maxPoolCountintMaximum connection pool size allowed for clients. If client configured value is greater than this value, it will be forcibly modified to the maximum value, default is 5.No
heartbeatTimeoutintTimeout for heartbeat connection between server and client, in seconds, default is 90 seconds.No
quicQUICOptionsQUIC protocol configuration parameters.No
tlsTLSServerConfigServer TLS protocol configuration.No

TLSServerConfig

FieldTypeDescriptionRequired
forceboolWhether to only accept client connections with TLS enabled.No
TLSConfigTLS protocol configuration, embedded structure.No

HTTPPluginOptions

FieldTypeDescriptionRequired
namestringPlugin name.Yes
addrstringPlugin interface address.Yes
pathstringPlugin interface path.Yes
ops[]stringList of operations that the plugin needs to take effect. For specific optional values, please refer to the server plugin documentation.Yes
tlsVerifyboolWhen plugin address is HTTPS protocol, whether to verify the plugin’s TLS certificate, default is not to verify.No

SSHTunnelGateway

FieldTypeDescriptionRequired
bindPortintSSH server listening port.YES
privateKeyFilestringSSH server private key file path. If empty, frps will read the private key file under autoGenPrivateKeyPath.No
autoGenPrivateKeyPathstringPrivate key file automatic generation path, default is ./.autogen_ssh_key. If the file does not exist or is empty, frps will automatically generate an RSA private key file and store it at this path.No
authorizedKeysFilestringSSH client authorized key file path. If empty, SSH client authentication will not be performed. Non-empty can implement SSH passwordless login authentication.No
Last modified January 4, 2026: add docs for v0.66 (#106) (191a9bc)