<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Reference on frp</title>
    <link>/frpdoc/en/docs/reference/</link>
    <description>Recent content in Reference on frp</description>
    <generator>Hugo</generator>
    <language>en</language>
    <atom:link href="/frpdoc/en/docs/reference/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Common Configuration</title>
      <link>/frpdoc/en/docs/reference/common/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/frpdoc/en/docs/reference/common/</guid>
      <description>&lt;h3 id=&#34;logconfig&#34;&gt;LogConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;to&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Log output file path. If set to console, logs will be printed to standard output.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;level&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Log level. Options are trace, debug, info, warn, error. Default level is info.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;maxDays&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Maximum days to retain log files, default is 3 days.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;disablePrintColor&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bool&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Disable log colors in standard output.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;webserverconfig&#34;&gt;WebServerConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;addr&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;webServer listening address, default is 127.0.0.1.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;port&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;webServer listening port.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;user&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;HTTP BasicAuth username.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;password&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;HTTP BasicAuth password.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;assetsDir&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Static resource directory. Dashboard resources are packaged in the binary file by default. Use this parameter to specify custom static resources.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;pprofEnable&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bool&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Enable Go HTTP pprof for application debugging.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;tls&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/common/#tlsconfig&#34;&gt;TLSConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;TLS related configuration for Dashboard HTTPS.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;tlsconfig&#34;&gt;TLSConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;certFile&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;TLS certificate file path.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;keyFile&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;TLS key file path.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;trustedCaFile&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;CA certificate file path.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;serverName&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;TLS Server name.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;quicoptions&#34;&gt;QUICOptions&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;keepalivePeriod&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Default value is 10 seconds.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;maxIdleTimeout&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Default value is 30 seconds.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;maxIncomingStreams&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Default value is 100000.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;portsrange&#34;&gt;PortsRange&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;start&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Starting port.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;end&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Ending port.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;single&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Single port.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;headeroperations&#34;&gt;HeaderOperations&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;set&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;map[string]string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Set specified KV values in Header.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;httpheader&#34;&gt;HTTPHeader&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;name&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Header name.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;value&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Header value.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;valuesource&#34;&gt;ValueSource&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;type&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Data source type. Options are &amp;ldquo;file&amp;rdquo; and &amp;ldquo;exec&amp;rdquo;.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;file&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/common/#filesource&#34;&gt;FileSource&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;File data source configuration, required when type is &amp;ldquo;file&amp;rdquo;.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;exec&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/common/#execsource&#34;&gt;ExecSource&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;External command data source configuration, required when type is &amp;ldquo;exec&amp;rdquo;. Requires &lt;code&gt;--allow-unsafe=TokenSourceExec&lt;/code&gt; flag at startup.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;filesource&#34;&gt;FileSource&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;path&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;File path.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;execsource&#34;&gt;ExecSource&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;command&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Path to the command to execute.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;args&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;[]string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;List of command arguments.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;env&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;[]&lt;a href=&#34;/frpdoc/en/docs/reference/common/#execenvvar&#34;&gt;ExecEnvVar&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Additional environment variables.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;execenvvar&#34;&gt;ExecEnvVar&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;name&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Environment variable name.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;value&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Environment variable value.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;nattraversalconfig&#34;&gt;NatTraversalConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;disableAssistedAddrs&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bool&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Disable assisted connections using local network interface addresses. When enabled, only uses STUN-discovered public addresses for NAT hole punching, avoiding potentially slow local network interfaces (e.g., VPN). Default is false.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;</description>
    </item>
    <item>
      <title>Server Configuration</title>
      <link>/frpdoc/en/docs/reference/server-configures/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/frpdoc/en/docs/reference/server-configures/</guid>
      <description>&lt;h3 id=&#34;serverconfig&#34;&gt;ServerConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;auth&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/server-configures/#authserverconfig&#34;&gt;AuthServerConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Authentication configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bindAddr&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Server listening address for receiving frpc connections, default listens on 0.0.0.0.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bindPort&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Server listening port, default value is 7000.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;kcpBindPort&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Server listening port for KCP protocol, used to receive frpc connections configured to use KCP protocol.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;quicBindPort&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Server listening port for QUIC protocol, used to receive frpc connections configured to use QUIC protocol.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;proxyBindAddr&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Proxy listening address, can make proxies listen on different network interface addresses, same as bindAddr by default.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;vhostHTTPPort&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Listening port for HTTP type proxies, must be enabled to support HTTP type proxies.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;vhostHTTPTimeout&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;ResponseHeader timeout for HTTP type proxies on the server side, default is 60s.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;vhostHTTPSPort&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Listening port for HTTPS type proxies, must be enabled to support HTTPS type proxies.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;tcpmuxHTTPConnectPort&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Listening port for tcpmux type proxies with httpconnect multiplexer.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;tcpmuxPassthrough&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bool&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Whether to pass through CONNECT requests for tcpmux type proxies.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;subDomainHost&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Subdomain suffix.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;custom404Page&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Custom 404 error page address.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;sshTunnelGateway&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/server-configures/#sshtunnelgateway&#34;&gt;SSHTunnelGateway&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;SSH tunnel gateway configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;webServer&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;../common#webserverconfig&#34;&gt;WebServerConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Server Dashboard configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;enablePrometheus&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bool&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Whether to provide Prometheus monitoring interface, will only take effect when webServer is also enabled.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;log&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;../common#logconfig&#34;&gt;LogConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Log configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;transport&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/server-configures/#servertransportconfig&#34;&gt;ServerTransportConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Network layer configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;detailedErrorsToClient&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bool&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Server returns detailed error information to client, default is true.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;maxPortsPerClient&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Limit the maximum number of simultaneous proxies for a single client, default is unlimited.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;userConnTimeout&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Timeout for waiting for client response after user establishes connection, in seconds, default is 10 seconds.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;udpPacketSize&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Maximum packet length supported when proxying UDP services, default is 1500. Server and client values need to be consistent.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;natholeAnalysisDataReserveHours&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Retention time for hole punching strategy data, default is 168 hours, i.e. 7 days.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;allowPorts&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;../common#portsrange&#34;&gt;[]PortsRange&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Server ports allowed for proxy binding.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;httpPlugins&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/server-configures/#httppluginoptions&#34;&gt;[]HTTPPluginOptions&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Server HTTP plugin configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;authserverconfig&#34;&gt;AuthServerConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;method&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Authentication method. Options are token or oidc, default is token.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;additionalScopes&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;[]string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Additional scope for authentication information. Options are HeartBeats and NewWorkConns&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;token&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Effective when method is token. Client needs to set the same value to pass authentication. Mutually exclusive with tokenSource field.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;tokenSource&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;../common#valuesource&#34;&gt;ValueSource&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Configuration for loading token from file. Mutually exclusive with token field.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;oidc&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/server-configures/#authoidcserverconfig&#34;&gt;AuthOIDCServerConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;OIDC authentication configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;authoidcserverconfig&#34;&gt;AuthOIDCServerConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;issuer&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;audience&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;skipExpiryCheck&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bool&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;skipIssuerCheck&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bool&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;servertransportconfig&#34;&gt;ServerTransportConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;tcpMuxKeepaliveInterval&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Heartbeat check interval time for tcp mux, in seconds.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;tcpKeepalive&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Keepalive interval time for underlying TCP connection with client, in seconds. Configure as negative number to disable.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;maxPoolCount&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Maximum 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.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;heartbeatTimeout&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Timeout for heartbeat connection between server and client, in seconds, default is 90 seconds.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;quic&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;../common#quicoptions&#34;&gt;QUICOptions&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;QUIC protocol configuration parameters.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;tls&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/server-configures/#tlsserverconfig&#34;&gt;TLSServerConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Server TLS protocol configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;tlsserverconfig&#34;&gt;TLSServerConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;force&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bool&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Whether to only accept client connections with TLS enabled.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;../common#tlsconfig&#34;&gt;TLSConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;TLS protocol configuration, embedded structure.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;httppluginoptions&#34;&gt;HTTPPluginOptions&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;name&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Plugin name.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;addr&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Plugin interface address.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;path&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Plugin interface path.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;ops&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;[]string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;List of operations that the plugin needs to take effect. For specific optional values, please refer to the server plugin documentation.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;tlsVerify&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bool&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;When plugin address is HTTPS protocol, whether to verify the plugin&amp;rsquo;s TLS certificate, default is not to verify.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;sshtunnelgateway&#34;&gt;SSHTunnelGateway&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bindPort&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;SSH server listening port.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;YES&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;privateKeyFile&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;SSH server private key file path. If empty, frps will read the private key file under autoGenPrivateKeyPath.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;autoGenPrivateKeyPath&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Private 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.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;authorizedKeysFile&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;SSH client authorized key file path. If empty, SSH client authentication will not be performed. Non-empty can implement SSH passwordless login authentication.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;</description>
    </item>
    <item>
      <title>Client Configuration</title>
      <link>/frpdoc/en/docs/reference/client-configures/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/frpdoc/en/docs/reference/client-configures/</guid>
      <description>&lt;h3 id=&#34;clientconfig&#34;&gt;ClientConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/client-configures/#clientcommonconfig&#34;&gt;ClientCommonConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Client common configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;proxies&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;../proxy&#34;&gt;[]ProxyConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Proxy configuration. Different proxy types correspond to different configurations, such as &lt;a href=&#34;../proxy#tcpproxyconfig&#34;&gt;TCPProxyConfig&lt;/a&gt; or &lt;a href=&#34;../proxy#httpproxyconfig&#34;&gt;HTTPProxyConfig&lt;/a&gt;.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;visitors&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;../visitor&#34;&gt;[]VisitorConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Visitor configuration. Different visitor types correspond to different configurations, such as &lt;a href=&#34;../visitor#stcpvisitorconfig&#34;&gt;STCPVisitorConfig&lt;/a&gt;.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;clientcommonconfig&#34;&gt;ClientCommonConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;auth&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/client-configures/#authclientconfig&#34;&gt;AuthClientConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Client authentication configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;user&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Username. After setting this parameter, proxy names will be modified to {user}.{proxyName} to avoid proxy name conflicts with other users.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;serverAddr&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Address to connect to the server.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;serverPort&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Port to connect to the server, default is 7000.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;natHoleStunServer&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;STUN server address required for xtcp hole punching, default is stun.easyvoip.com:3478.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;dnsServer&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;DNS server address to use. By default, it uses the system-configured DNS server. Specifying this parameter can force replacement with a custom DNS server address.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;loginFailExit&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bool&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Whether to exit after first login failure, default is true.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;start&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;[]string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Specify to enable partial proxies. When many proxies are configured but only some of them are desired to be enabled, this parameter can be used to specify them. Default is to enable all.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;log&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;../common#logconfig&#34;&gt;LogConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Log configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;webServer&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;../common#webserverconfig&#34;&gt;WebServerConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Client AdminServer configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;transport&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/client-configures/#clienttransportconfig&#34;&gt;ClientTransportConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Client network layer configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;virtualNet&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/client-configures/#virtualnetconfig&#34;&gt;VirtualNetConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Virtual network configuration, Alpha feature.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;featureGates&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;map[string]bool&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Feature gates, used to enable or disable experimental features.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;udpPacketSize&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Maximum packet length supported when proxying UDP services, default is 1500. Server and client need to maintain consistent configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;metadatas&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;map[string]string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Additional metadata that will be passed to server plugins to provide additional capabilities.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;includes&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;[]string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Specify additional configuration file directories where proxy and visitor configurations will be read and loaded.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;store&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/client-configures/#storeconfig&#34;&gt;StoreConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Store configuration for persisting proxy and visitor configurations. Supports runtime management via Web UI or API when webServer is enabled.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;storeconfig&#34;&gt;StoreConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;path&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Store file path. When configured, enables the Store feature for runtime proxy and visitor management with persistence.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;clienttransportconfig&#34;&gt;ClientTransportConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;protocol&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Communication protocol with frps. Options are tcp, kcp, quic, websocket, wss. Default is tcp.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;dialServerTimeout&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Timeout for connecting to the server, default is 10s.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;dialServerKeepalive&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Keepalive interval time for the underlying TCP connection with the server, in seconds.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;connectServerLocalIP&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Local IP bound when connecting to the server.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;proxyURL&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Proxy address used to connect to the server, format: {protocol}://user:passwd@192.168.1.128:8080. Protocol currently supports http, socks5, ntlm.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;poolCount&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Connection pool size.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;tcpMux&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bool&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;TCP multiplexing, enabled by default.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;tcpMuxKeepaliveInterval&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Heartbeat check interval time for &lt;code&gt;tcpMux&lt;/code&gt;.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;quic&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;../common#quicoptions&#34;&gt;QUICOptions&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;QUIC protocol configuration parameters.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;heartbeatInterval&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Interval time for sending heartbeat packets to the server, default is 30s. It is recommended to enable &lt;code&gt;tcpMuxKeepaliveInterval&lt;/code&gt; and set this value to -1.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;heartbeatTimeout&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Timeout for heartbeat with the server, default is 90s.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;tls&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/client-configures/#tlsclientconfig&#34;&gt;TLSClientConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Client TLS protocol configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;tlsclientconfig&#34;&gt;TLSClientConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;enable&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bool&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Whether to enable TLS connection with the server, enabled by default.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;disableCustomTLSFirstByte&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bool&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;When TLS connection is enabled, do not send the 0x17 special byte. Default is true. When configured as true, it cannot be reused with vhostHTTPSPort port.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;../common#tlsconfig&#34;&gt;TLSConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;TLS protocol configuration, embedded structure.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;authclientconfig&#34;&gt;AuthClientConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;method&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Authentication method. Options are token or oidc, default is token.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;additionalScopes&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;[]string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Additional scope for authentication information. Options are HeartBeats and NewWorkConns&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;token&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Effective when method is token. Client needs to set the same value to pass authentication. Mutually exclusive with tokenSource field.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;tokenSource&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;../common#valuesource&#34;&gt;ValueSource&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Configuration for loading token from file. Mutually exclusive with token field.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;oidc&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/client-configures/#authoidcclientconfig&#34;&gt;AuthOIDCClientConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;OIDC authentication configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;authoidcclientconfig&#34;&gt;AuthOIDCClientConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;clientID&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;OIDC client ID.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;clientSecret&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;OIDC client secret.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;audience&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;OIDC audience parameter.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;scope&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;OIDC scope parameter.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;tokenEndpointURL&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;OIDC token endpoint URL.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;additionalEndpointParams&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;map[string]string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Additional endpoint parameters.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;trustedCaFile&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Trusted CA certificate file path for verifying OIDC server TLS certificate.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;insecureSkipVerify&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bool&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Skip TLS certificate verification, not recommended for production use.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;proxyURL&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Proxy server URL to use when accessing OIDC token endpoint.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;tokenSource&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;../common#valuesource&#34;&gt;ValueSource&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Configuration for dynamically obtaining OIDC token from external source. When configured, other OIDC configuration fields will be ignored.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;virtualnetconfig&#34;&gt;VirtualNetConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;address&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;IP address and network segment of the virtual network interface, format is CIDR (e.g. &amp;ldquo;100.86.0.1/24&amp;rdquo;).&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;</description>
    </item>
    <item>
      <title>Proxy Configuration</title>
      <link>/frpdoc/en/docs/reference/proxy/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/frpdoc/en/docs/reference/proxy/</guid>
      <description>&lt;h3 id=&#34;proxybaseconfig&#34;&gt;ProxyBaseConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;name&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Proxy name.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;type&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Proxy type. Options are tcp, udp, http, https, tcpmux, stcp, sudp, xtcp.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;enabled&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;*bool&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Whether this proxy is enabled, default is true. Set to false to disable this proxy, allowing individual control over each proxy&amp;rsquo;s enabled state.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;annotations&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;map[string]string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Proxy annotation information that will be displayed in the server&amp;rsquo;s dashboard.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;transport&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/proxy/#proxytransport&#34;&gt;ProxyTransport&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Proxy network layer configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;metadatas&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;map[string]string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Additional metadata that will be passed to server plugins to provide additional capabilities.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;loadBalancer&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/proxy/#loadbalancerconfig&#34;&gt;LoadBalancerConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Load balancing configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;healthCheck&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/proxy/#healthcheckconfig&#34;&gt;HealthCheckConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Health check configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/proxy/#proxybackend&#34;&gt;ProxyBackend&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Proxy backend service configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;proxytransport&#34;&gt;ProxyTransport&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;useEncryption&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bool&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Whether to enable encryption functionality. When enabled, communication content between this proxy and the server will be encrypted. If frpc has enabled global TLS, this parameter is not needed.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;useCompression&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bool&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Whether to enable compression functionality. When enabled, communication content between this proxy and the server will be compressed.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bandwidthLimit&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Set bandwidth rate limiting for a single proxy, in MB or KB units. 0 means no limit. If enabled, it will apply to the corresponding frpc by default.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bandwidthLimitMode&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Rate limiting type, client-side or server-side rate limiting. Options are client and server, default is client-side rate limiting.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;proxyProtocolVersion&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Version of proxy protocol to enable. Options are v1 and v2. If enabled, frpc will send proxy protocol after establishing connection with local service, containing original request IP address and port information.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;proxybackend&#34;&gt;ProxyBackend&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;localIP&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;IP of the local service being proxied, default is 127.0.0.1.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;localPort&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Port of the local service being proxied.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;plugin&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;../client-plugin&#34;&gt;ClientPluginOptions&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Client plugin configuration. If client plugin is enabled, localIP and localPort don&amp;rsquo;t need to be configured, and traffic will be handled by the client plugin. Different plugin types correspond to different configurations, such as &lt;a href=&#34;../client-plugin#httpproxypluginoptions&#34;&gt;HTTPProxyPluginOptions&lt;/a&gt;.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;loadbalancerconfig&#34;&gt;LoadBalancerConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;group&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Load balancing group name. User requests will be sent to proxies in the same group using round-robin.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;groupKey&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Load balancing group key for authenticating the load balancing group. Only proxies with the same groupKey will be added to the same group.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;healthcheckconfig&#34;&gt;HealthCheckConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;type&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Health check type. Options are tcp and http. After configuration, health check is enabled. tcp considers service healthy if connection succeeds, http requires interface to return 2xx status codes to consider service healthy.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;timeoutSeconds&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Health check timeout (seconds), default is 3s.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;maxFailed&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Consecutive health check error count. How many consecutive check errors to consider service unhealthy, default is 1.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;intervalSeconds&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Health check interval (seconds). How often to perform health checks, default is 10s.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;path&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Health check HTTP interface. If health check type is http, this parameter needs to be configured to specify the path for sending http requests, such as &lt;code&gt;/health&lt;/code&gt;.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;httpHeaders&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;../common#httpheader&#34;&gt;[]HTTPHeader&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Health check HTTP request headers, only effective when health check type is http.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;domainconfig&#34;&gt;DomainConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;customDomains&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;[]string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Custom domain list.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;subdomain&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Subdomain.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;tcpproxyconfig&#34;&gt;TCPProxyConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/proxy/#proxybaseconfig&#34;&gt;ProxyBaseConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Base configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;remotePort&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Port bound by the server. Traffic accessing this port on the server will be forwarded to the corresponding local service.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;udpproxyconfig&#34;&gt;UDPProxyConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/proxy/#proxybaseconfig&#34;&gt;ProxyBaseConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Base configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;remotePort&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Port bound by the server. Traffic accessing this port on the server will be forwarded to the corresponding local service.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;httpproxyconfig&#34;&gt;HTTPProxyConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/proxy/#proxybaseconfig&#34;&gt;ProxyBaseConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Base configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/proxy/#domainconfig&#34;&gt;DomainConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Domain configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;locations&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;[]string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;URL routing configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;httpUser&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;HTTP Basic Auth username.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;httpPassword&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;HTTP Basic Auth password.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;hostHeaderRewrite&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Replace Host Header.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;requestHeaders&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;../common#headeroperations&#34;&gt;HeaderOperations&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Request Header operation configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;responseHeaders&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;../common#headeroperations&#34;&gt;HeaderOperations&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Response Header operation configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;routeByHTTPUser&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Route by HTTP Basic Auth user.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;httpsproxyconfig&#34;&gt;HTTPSProxyConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/proxy/#proxybaseconfig&#34;&gt;ProxyBaseConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Base configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/proxy/#domainconfig&#34;&gt;DomainConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Domain configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;tcpmuxproxyconfig&#34;&gt;TCPMuxProxyConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/proxy/#proxybaseconfig&#34;&gt;ProxyBaseConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Base configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/proxy/#domainconfig&#34;&gt;DomainConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Domain configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;httpUser&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Username. If this parameter is configured, correct identity information needs to be attached via Proxy-Authorization when establishing connection through HTTP CONNECT.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;httpPassword&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Password.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;routeByHTTPUser&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Route by HTTP Basic Auth user.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;multiplexer&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Multiplexer type, currently only supports httpconnect.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;stcpproxyconfig&#34;&gt;STCPProxyConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/proxy/#proxybaseconfig&#34;&gt;ProxyBaseConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Base configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;secretKey&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Secret key. The secret key between server and access side must be consistent for the access side to access the server.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;allowUsers&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;[]string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;List of visitor users allowed to access. By default, only visitors under the same user are allowed to access. Configure as * to allow any visitor to access.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;xtcpproxyconfig&#34;&gt;XTCPProxyConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/proxy/#proxybaseconfig&#34;&gt;ProxyBaseConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Base configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;secretKey&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Secret key. The secret key between server and access side must be consistent for the access side to access the server.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;allowUsers&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;[]string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;List of visitor users allowed to access. By default, only visitors under the same user are allowed to access. Configure as * to allow any visitor to access.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;natTraversal&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;../common#nattraversalconfig&#34;&gt;NatTraversalConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;NAT traversal configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;sudpproxyconfig&#34;&gt;SUDPProxyConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/proxy/#proxybaseconfig&#34;&gt;ProxyBaseConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Base configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;secretKey&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Secret key. The secret key between server and access side must be consistent for the access side to access the server.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;allowUsers&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;[]string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;List of visitor users allowed to access. By default, only visitors under the same user are allowed to access. Configure as * to allow any visitor to access.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;</description>
    </item>
    <item>
      <title>Visitor Configuration</title>
      <link>/frpdoc/en/docs/reference/visitor/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/frpdoc/en/docs/reference/visitor/</guid>
      <description>&lt;h3 id=&#34;visitorbaseconfig&#34;&gt;VisitorBaseConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;name&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Visitor name.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;type&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Visitor type. Options are stcp, sudp, xtcp.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;enabled&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;*bool&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Whether this visitor is enabled, default is true. Set to false to disable this visitor, allowing individual control over each visitor&amp;rsquo;s enabled state.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;transport&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/visitor/#visitortransport&#34;&gt;VisitorTransport&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Visitor network layer configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;secretKey&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Secret key. The secret key between server and access side must be consistent for the access side to access the server.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;serverUser&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Username that the proxy to be accessed belongs to. If empty, defaults to current user.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;serverName&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Name of the proxy to be accessed.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bindAddr&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Local address that visitor listens on. By accessing the listened address and port, connect to the remote proxy service.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bindPort&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Local port that visitor listens on. If set to -1, means no need to listen on physical port, usually can be used as fallback for other visitors.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;plugin&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;../visitor-plugin&#34;&gt;VisitorPluginOptions&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Visitor plugin configuration for extending visitor functionality. Different plugin types correspond to different configurations.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;visitortransport&#34;&gt;VisitorTransport&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;useEncryption&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bool&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Whether to enable encryption functionality. When enabled, communication content between this proxy and the server will be encrypted. If frpc has enabled global TLS, this parameter is not needed.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;useCompression&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bool&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Whether to enable compression functionality. When enabled, communication content between this proxy and the server will be compressed.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;stcpvisitorconfig&#34;&gt;STCPVisitorConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/visitor/#visitorbaseconfig&#34;&gt;VisitorBaseConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Base configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;sudpvisitorconfig&#34;&gt;SUDPVisitorConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/visitor/#visitorbaseconfig&#34;&gt;VisitorBaseConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Base configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;xtcpvisitorconfig&#34;&gt;XTCPVisitorConfig&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;/frpdoc/en/docs/reference/visitor/#visitorbaseconfig&#34;&gt;VisitorBaseConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Base configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;protocol&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Tunnel underlying communication protocol. Options are quic and kcp, default is quic.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;keepTunnelOpen&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bool&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Whether to keep tunnel open. If enabled, will periodically check tunnel status and try to keep it open.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;maxRetriesAnHour&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Number of attempts to open tunnel per hour, default value is 8.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;minRetryInterval&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Minimum interval time for retrying to open tunnel, in seconds, default is 90s.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;fallbackTo&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Name of other visitor to fallback to.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;fallbackTimeoutMs&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;int&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Fallback to other visitor after connection establishment exceeds this time (ms).&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;natTraversal&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;../common#nattraversalconfig&#34;&gt;NatTraversalConfig&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;NAT traversal configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;</description>
    </item>
    <item>
      <title>Client Plugin Configuration</title>
      <link>/frpdoc/en/docs/reference/client-plugin/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/frpdoc/en/docs/reference/client-plugin/</guid>
      <description>&lt;h3 id=&#34;httpproxypluginoptions&#34;&gt;HTTPProxyPluginOptions&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;type&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Plugin type, set to &amp;ldquo;http_proxy&amp;rdquo;.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;httpUser&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;HTTP proxy username.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;httpPassword&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;HTTP proxy password.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;socks5pluginoptions&#34;&gt;Socks5PluginOptions&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;type&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Plugin type, set to &amp;ldquo;socks5&amp;rdquo;.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;username&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Username.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;password&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Password.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;staticfilepluginoptions&#34;&gt;StaticFilePluginOptions&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;type&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Plugin type, set to &amp;ldquo;static_file&amp;rdquo;.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;localPath&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Local path where static files are located.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;stripPrefix&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Remove specific prefix from user HTTP request Path.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;httpUser&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;HTTP Basic Auth username.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;httpPassword&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;HTTP Basic Auth password.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;unixdomainsocketpluginoptions&#34;&gt;UnixDomainSocketPluginOptions&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;type&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Plugin type, set to &amp;ldquo;unix_domain_socket&amp;rdquo;.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;unixPath&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;UNIX domain socket address.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;http2httpspluginoptions&#34;&gt;HTTP2HTTPSPluginOptions&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;type&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Plugin type, set to &amp;ldquo;http2https&amp;rdquo;.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;localAddr&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Local HTTPS service address.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;hostHeaderRewrite&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Replace Host header.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;requestHeaders&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;../common#headeroperations&#34;&gt;HeaderOperations&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Request Header operation configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;https2httppluginoptions&#34;&gt;HTTPS2HTTPPluginOptions&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;type&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Plugin type, set to &amp;ldquo;https2http&amp;rdquo;.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;localAddr&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Local HTTPS service address.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;hostHeaderRewrite&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Replace Host header.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;requestHeaders&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;../common#headeroperations&#34;&gt;HeaderOperations&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Request Header operation configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;enableHTTP2&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bool&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Whether to enable HTTP/2, enabled by default.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;crtPath&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;TLS certificate file path.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;keyPath&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;TLS key file path.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;https2httpspluginoptions&#34;&gt;HTTPS2HTTPSPluginOptions&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;type&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Plugin type, set to &amp;ldquo;https2https&amp;rdquo;.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;localAddr&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Local HTTPS service address.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;hostHeaderRewrite&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Replace Host header.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;requestHeaders&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;../common#headeroperations&#34;&gt;HeaderOperations&lt;/a&gt;&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Request Header operation configuration.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;enableHTTP2&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;bool&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Whether to enable HTTP/2, enabled by default.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;crtPath&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;TLS certificate file path.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;keyPath&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;TLS key file path.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;tls2rawpluginoptions&#34;&gt;TLS2RawPluginOptions&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;type&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Plugin type, set to &amp;ldquo;tls2raw&amp;rdquo;.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;localAddr&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Local service address.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;crtPath&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;TLS certificate file path.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;keyPath&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;TLS key file path.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;No&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;virtualnetpluginoptions&#34;&gt;VirtualNetPluginOptions&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;type&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Plugin type, set to &amp;ldquo;virtual_net&amp;rdquo;.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;</description>
    </item>
    <item>
      <title>Visitor Plugin Configuration</title>
      <link>/frpdoc/en/docs/reference/visitor-plugin/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/frpdoc/en/docs/reference/visitor-plugin/</guid>
      <description>&lt;h3 id=&#34;virtualnetvisitorpluginoptions&#34;&gt;VirtualNetVisitorPluginOptions&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Field&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Description&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Required&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;type&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Plugin type, set to &amp;ldquo;virtual_net&amp;rdquo;.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;destinationIP&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;string&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Target virtual IP address to access. Usually the server&amp;rsquo;s virtual network address.&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Yes&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;</description>
    </item>
  </channel>
</rss>
