1
0
mirror of https://git.openwrt.org/project/luci.git synced 2025-10-14 01:32:18 +08:00

luci-app-frp: support QUIC protocol and Dashboard TLS

Add support for the QUIC protocol and Dashboard TLS in LuCI, new features in the latest version of frp.​ openwrt/packages#27191

Signed-off-by: Roc Lai <laipeng668@qq.com>
This commit is contained in:
Roc Lai
2025-08-14 15:31:59 +08:00
committed by Paul Donald
parent b7aae6aca7
commit ac2638ccf9
6 changed files with 131 additions and 27 deletions

View File

@@ -33,8 +33,8 @@ var commonConf = [
[form.Flag, 'tcp_mux', _('TCP mux'), _('TcpMux toggles TCP stream multiplexing. This allows multiple requests from a client to share a single TCP connection. If this value is true, the server must have TCP multiplexing enabled as well.<br />By default, this value is true.'), {datatype: 'bool', default: 'true'}],
[form.Value, 'user', _('User'), _('User specifies a prefix for proxy names to distinguish them from other clients. If this value is not "", proxy names will automatically be changed to "{user}.{proxy_name}".<br />By default, this value is "".')],
[form.Flag, 'login_fail_exit', _('Exit when login fail'), _('LoginFailExit controls whether or not the client should exit after a failed login attempt. If false, the client will retry until a login attempt succeeds.<br />By default, this value is true.'), {datatype: 'bool', default: 'true'}],
[form.ListValue, 'protocol', _('Protocol'), _('Protocol specifies the protocol to use when interacting with the server. Valid values are "tcp", "kcp", and "websocket".<br />By default, this value is "tcp".'), {values: ['tcp', 'kcp', 'websocket']}],
[form.Flag, 'tls_enable', _('TLS'), _('TLSEnable specifies whether or not TLS should be used when communicating with the server.'), {datatype: 'bool'}],
[form.ListValue, 'protocol', _('Protocol'), _('Protocol specifies the protocol to use when interacting with the server. Valid values are "tcp", "kcp", "quic" and "websocket".<br />By default, this value is "tcp".'), {values: ['tcp', 'kcp', 'quic', 'websocket']}],
[form.Flag, 'tls_enable', _('TLS'), _('TLS Enable specifies whether or not TLS should be used when communicating with the server.'), {datatype: 'bool'}],
[form.Value, 'heartbeat_interval', _('Heartbeat interval'), _('HeartBeatInterval specifies at what interval heartbeats are sent to the server, in seconds. It is not recommended to change this value.<br />By default, this value is 30.'), {datatype: 'uinteger'}],
[form.Value, 'heartbeat_timeout', _('Heartbeat timeout'), _('HeartBeatTimeout specifies the maximum allowed heartbeat response delay before the connection is terminated, in seconds. It is not recommended to change this value.<br />By default, this value is 90.'), {datatype: 'uinteger'}],
[form.DynamicList, '_', _('Additional settings'), _('This list can be used to specify some additional parameters which have not been included in this LuCI.'), {placeholder: 'Key-A=Value-A'}]
@@ -42,7 +42,7 @@ var commonConf = [
var baseProxyConf = [
[form.Value, 'name', _('Proxy name'), undefined, {rmempty: false, optional: false}],
[form.ListValue, 'type', _('Proxy type'), _('ProxyType specifies the type of this proxy. Valid values include "tcp", "udp", "http", "https", "stcp", and "xtcp".<br />By default, this value is "tcp".'), {values: ['tcp', 'udp', 'http', 'https', 'stcp', 'xtcp']}],
[form.ListValue, 'type', _('Proxy type'), _('ProxyType specifies the type of this proxy. Valid values include "tcp", "udp", "http", "https", "stcp" and "xtcp".<br />By default, this value is "tcp".'), {values: ['tcp', 'udp', 'http', 'https', 'stcp', 'xtcp']}],
[form.Flag, 'use_encryption', _('Encryption'), _('UseEncryption controls whether or not communication with the server will be encrypted. Encryption is done using the tokens supplied in the server and client configuration.<br />By default, this value is false.'), {datatype: 'bool'}],
[form.Flag, 'use_compression', _('Compression'), _('UseCompression controls whether or not communication with the server will be compressed.<br />By default, this value is false.'), {datatype: 'bool'}],
[form.Value, 'local_ip', _('Local IP'), _('LocalIp specifies the IP address or host name to proxy to.'), {datatype: 'host'}],

View File

@@ -296,10 +296,10 @@ msgstr "协议"
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:36
msgid ""
"Protocol specifies the protocol to use when interacting with the server. "
"Valid values are \"tcp\", \"kcp\", and \"websocket\".<br />By default, this "
"value is \"tcp\"."
"Valid values are \"tcp\", \"kcp\", \"quic\" and \"websocket\".<br />By "
"default, this value is \"tcp\"."
msgstr ""
"Protocol 指定在与服务器交互时要使用的协议。有效值为\"tcp\"、\"kcp\"和"
"Protocol 指定在与服务器交互时要使用的协议。有效值为\"tcp\"、\"kcp\"、\"quic\"和"
"\"websocket\"。<br />默认情况下,此值为\"tcp\"。"
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:210
@@ -319,8 +319,8 @@ msgstr "代理类型"
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:45
msgid ""
"ProxyType specifies the type of this proxy. Valid values include \"tcp\", "
"\"udp\", \"http\", \"https\", \"stcp\", and \"xtcp\".<br />By default, this "
"value is \"tcp\"."
"\"udp\", \"http\", \"https\", \"stcp\" and \"xtcp\".<br />By "
"default, this value is \"tcp\"."
msgstr ""
"ProxyType 指定此代理的类型。有效值包括\"tcp\"、\"udp\"、\"http\"、\"https\"、"
"\"stcp\"和\"xtcp\"。<br />默认情况下,此值为\"tcp\"。"
@@ -407,9 +407,9 @@ msgstr "TLS"
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:37
msgid ""
"TLSEnable specifies whether or not TLS should be used when communicating "
"TLS Enable specifies whether or not TLS should be used when communicating "
"with the server."
msgstr "TLSEnable 指定在与服务器通信时是否应使用 TLS。"
msgstr "TLS Enable 指定在与服务器通信时是否应使用 TLS。"
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:33
msgid ""

View File

@@ -295,11 +295,11 @@ msgstr "協定"
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:36
msgid ""
"Protocol specifies the protocol to use when interacting with the server. "
"Valid values are \"tcp\", \"kcp\", and \"websocket\".<br />By default, this "
"value is \"tcp\"."
"Valid values are \"tcp\", \"kcp\", \"quic\" and \"websocket\".<br />By "
"default, this value is \"tcp\"."
msgstr ""
"Protocol指定與伺服器互動時要使用的協定。有效值為“ tcp”“ kcp”“ "
"websocket”。<br />預設情況下,此值為“ tcp”。"
"Protocol指定與伺服器互動時要使用的協定。有效值為“ tcp”“ kcp”quic”和"
"websocket”。<br />預設情況下,此值為“ tcp”。"
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:210
msgid "Proxy Settings"
@@ -318,8 +318,8 @@ msgstr "代理類別"
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:45
msgid ""
"ProxyType specifies the type of this proxy. Valid values include \"tcp\", "
"\"udp\", \"http\", \"https\", \"stcp\", and \"xtcp\".<br />By default, this "
"value is \"tcp\"."
"\"udp\", \"http\", \"https\", \"stcp\" and \"xtcp\".<br />By "
"default, this value is \"tcp\"."
msgstr ""
"ProxyType指定此代理的類型。有效值包括“ tcp”“ udp”“ http”“ https”“ "
"stcp”和“ xtcp”。<br />預設情況下,此值為“ tcp”。"
@@ -404,9 +404,9 @@ msgstr "TLS"
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:37
msgid ""
"TLSEnable specifies whether or not TLS should be used when communicating "
"TLS Enable specifies whether or not TLS should be used when communicating "
"with the server."
msgstr "TLSEnable指定與伺服器通訊時是否應使用TLS。"
msgstr "TLS Enable指定與伺服器通訊時是否應使用TLS。"
#: applications/luci-app-frpc/htdocs/luci-static/resources/view/frpc.js:33
msgid ""

View File

@@ -18,8 +18,9 @@ var startupConf = [
var commonConf = [
[form.Value, 'bind_addr', _('Bind address'), _('BindAddr specifies the address that the server binds to.<br />By default, this value is "0.0.0.0".'), {datatype: 'ipaddr'}],
[form.Value, 'bind_port', _('Bind port'), _('BindPort specifies the port that the server listens on.<br />By default, this value is 7000.'), {datatype: 'port'}],
[form.Value, 'bind_udp_port', _('UDP bind port'), _('BindUdpPort specifies the UDP port that the server listens on. If this value is 0, the server will not listen for UDP connections.<br />By default, this value is 0'), {datatype: 'port'}],
[form.Value, 'bind_udp_port', _('UDP bind port'), _('BindUdpPort specifies the UDP port that the server listens on. If this value is 0, the server will not listen for UDP connections.<br />By default, this value is 0.'), {datatype: 'port'}],
[form.Value, 'kcp_bind_port', _('KCP bind port'), _('BindKcpPort specifies the KCP port that the server listens on. If this value is 0, the server will not listen for KCP connections.<br />By default, this value is 0.'), {datatype: 'port'}],
[form.Value, 'quic_bind_port', _('QUIC bind port'), _('BindQuicPort specifies the QUIC port that the server listens on. If this value is 0, the server will not listen for QUIC connections.<br />By default, this value is 0.'), {datatype: 'port'}],
[form.Value, 'proxy_bind_addr', _('Proxy bind address'), _('ProxyBindAddr specifies the address that the proxy binds to. This value may be the same as BindAddr.<br />By default, this value is "0.0.0.0".'), {datatype: 'ipaddr'}],
[form.Value, 'vhost_http_port', _('Vhost HTTP port'), _('VhostHttpPort specifies the port that the server listens for HTTP Vhost requests. If this value is 0, the server will not listen for HTTP requests.<br />By default, this value is 0.'), {datatype: 'port'}],
[form.Value, 'vhost_https_port', _('Vhost HTTPS port'), _('VhostHttpsPort specifies the port that the server listens for HTTPS Vhost requests. If this value is 0, the server will not listen for HTTPS requests.<br />By default, this value is 0.'), {datatype: 'port'}],
@@ -28,6 +29,9 @@ var commonConf = [
[form.Value, 'dashboard_port', _('Dashboard port'), _('DashboardPort specifies the port that the dashboard listens on. If this value is 0, the dashboard will not be started.<br />By default, this value is 0.'), {datatype: 'port'}],
[form.Value, 'dashboard_user', _('Dashboard user'), _('DashboardUser specifies the username that the dashboard will use for login.<br />By default, this value is "admin".')],
[form.Value, 'dashboard_pwd', _('Dashboard password'), _('DashboardPwd specifies the password that the dashboard will use for login.<br />By default, this value is "admin".'), {password: true}],
[form.Flag, 'dashboard_tls_mode', _('Dashboard TLS mode'), _('Enable or disable TLS encryption for the dashboard. When enabled, HTTPS is used for secure communication.'), {datatype: 'bool'}],
[form.Value, 'dashboard_tls_cert_file', _('Dashboard TLS certificate'), _('Dashboard TLS Cert File specifies the path to the TLS certificate file for enabling HTTPS access.<br />Required if HTTPS is enabled.'), {datatype: 'filepath'}],
[form.Value, 'dashboard_tls_key_file', _('Dashboard TLS private key'), _('Dashboard TLS Key File specifies the path to the TLS private key file for enabling HTTPS access.<br />Required if HTTPS is enabled.'), {datatype: 'filepath'}],
[form.Value, 'assets_dir', _('Assets dir'), _('AssetsDir specifies the local directory that the dashboard will load resources from. If this value is "", assets will be loaded from the bundled executable using statik.<br />By default, this value is "".')],
[form.Value, 'log_file', _('Log file'), _('LogFile specifies a file where logs will be written to. This value will only be used if LogWay is set appropriately.<br />By default, this value is "console".')],
[form.ListValue, 'log_level', _('Log level'), _('LogLevel specifies the minimum log level. Valid values are "trace", "debug", "info", "warn", and "error".<br />By default, this value is "info".'), {values: ['trace', 'debug', 'info', 'warn', 'error']}],

View File

@@ -67,6 +67,15 @@ msgstr ""
"BindKcpPort 指定服务器侦听的 KCP 端口。如果此值为 0则服务器将不会侦听 KCP "
"连接。<br />默认值为 0。"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:23
msgid ""
"BindQuicPort specifies the QUIC port that the server listens on. If this value "
"is 0, the server will not listen for QUIC connections.<br />By default, this "
"value is 0."
msgstr ""
"BindQuicPort 指定服务器侦听的 QUIC 端口。如果此值为 0则服务器将不会侦听 QUIC "
"连接。<br />默认值为 0。"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:20
msgid ""
"BindPort specifies the port that the server listens on.<br />By default, "
@@ -77,10 +86,10 @@ msgstr "BindPort 指定服务器侦听的端口。<br />默认值为 7000。"
msgid ""
"BindUdpPort specifies the UDP port that the server listens on. If this value "
"is 0, the server will not listen for UDP connections.<br />By default, this "
"value is 0"
"value is 0."
msgstr ""
"BindUdpPort 指定服务器侦听的 UDP 端口。如果此值为 0则服务器将不会侦听 UDP "
"连接。<br />默认值为 0"
"连接。<br />默认值为 0"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:143
msgid "Collecting data ..."
@@ -187,6 +196,10 @@ msgstr "心跳包超时"
msgid "KCP bind port"
msgstr "KCP 绑定端口"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:23
msgid "QUIC bind port"
msgstr "QUIC 绑定端口"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:32
msgid "Log file"
msgstr "日志文件"
@@ -345,7 +358,7 @@ msgstr "UDP 绑定端口"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:24
msgid "Vhost HTTP port"
msgstr "Vhost HTTP端口"
msgstr "Vhost HTTP 端口"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:26
msgid "Vhost HTTP timeout"
@@ -379,7 +392,44 @@ msgid ""
"<br />By default, this value is 0."
msgstr ""
"VhostHttpsPort指定服务器侦听HTTPS Vhost请求的端口。如果该值为0服务器将不侦"
"听HTTPS请求。.<br />该值默认为 0。"
"听HTTPS请求。<br />该值默认为 0。"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:32
msgid "Dashboard TLS mode"
msgstr "仪表板 TLS 模式"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:33
msgid "Dashboard TLS certificate"
msgstr "​仪表板 TLS 证书​"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:34
msgid "Dashboard TLS private key"
msgstr "仪表板 TLS 私钥​"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:32
msgid ""
"Enable or disable TLS encryption for the dashboard. When enabled, HTTPS "
"is used for secure communication."
msgstr ""
"启用或禁用仪表板的 TLS 加密功能。启用后,仪表板将通过 HTTPS 协议进行安全通信。​"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:33
msgid ""
"Dashboard TLS Cert File specifies the path to the TLS certificate file for "
"enabling HTTPS access."
"<br />Required if HTTPS is enabled."
msgstr ""
"Dashboard TLS Cert File 用于指定启用 HTTPS 访问所需的 TLS 证书文件路径,若启"
"用 HTTPS 则必须配置此文件。"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:34
msgid ""
"Dashboard TLS Key File specifies the path to the TLS private key file for "
"enabling HTTPS access."
"<br />Required if HTTPS is enabled."
msgstr ""
"Dashboard TLS Key File 用于指定启用 HTTPS 访问所需的 TLS 私钥文件路径,若启"
"用 HTTPS 则必须配置此文件。"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:116
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:118

View File

@@ -64,7 +64,16 @@ msgid ""
"is 0, the server will not listen for KCP connections.<br />By default, this "
"value is 0."
msgstr ""
"indKcpPort指定伺服器監聽的KCP埠號. 如果此值為0, 則伺服器將不會監聽KCP連線。"
"BindKcpPort指定伺服器監聽的KCP埠號. 如果此值為0, 則伺服器將不會監聽KCP連線。"
"<br />預設情況下, 此值為0."
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:23
msgid ""
"BindQuicPort specifies the QUIC port that the server listens on. If this value "
"is 0, the server will not listen for QUIC connections.<br />By default, this "
"value is 0."
msgstr ""
"BindQuicPort指定伺服器監聽的QUIC埠號. 如果此值為0, 則伺服器將不會監聽QUIC連線。"
"<br />預設情況下, 此值為0."
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:20
@@ -77,9 +86,9 @@ msgstr "BindPort指定伺服器監聽的埠號. <br />預設情況下, 此值為
msgid ""
"BindUdpPort specifies the UDP port that the server listens on. If this value "
"is 0, the server will not listen for UDP connections.<br />By default, this "
"value is 0"
"value is 0."
msgstr "BindUdpPort指定伺服器監聽的UDP連接埠。如果此值為0伺服器將不會監聽UDP連線。 "
"<br />預設值為0"
"<br />預設值為0."
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:143
msgid "Collecting data ..."
@@ -186,7 +195,11 @@ msgstr "心跳逾時"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:22
msgid "KCP bind port"
msgstr "KCP定埠號"
msgstr "KCP定埠號"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:23
msgid "QUIC bind port"
msgstr "QUIC綁定埠號"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:32
msgid "Log file"
@@ -382,6 +395,43 @@ msgstr ""
"VhostHttpsPort指定伺服器監聽虛擬主機HTTPS請求的埠號, 如果此值為0, 則伺服器將"
"不監聽HTTPS請求. <br />預設情況下, 此值為0."
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:32
msgid "Dashboard TLS mode"
msgstr "儀表板TLS模式"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:33
msgid "Dashboard TLS certificate"
msgstr "儀表板TLS證書"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:34
msgid "Dashboard TLS private key"
msgstr "儀表板TLS私鑰"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:32
msgid ""
"Enable or disable TLS encryption for the dashboard. When enabled, HTTPS "
"is used for secure communication."
msgstr ""
"​​啟用或停用儀表板的 TLS 加密功能。啟用後,儀表板將透過 HTTPS 協定進行安全通訊。​"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:33
msgid ""
"Dashboard TLS Cert File specifies the path to the TLS certificate file for "
"enabling HTTPS access."
"<br />Required if HTTPS is enabled."
msgstr ""
"Dashboard TLS Cert File 用於指定啟用 HTTPS 存取所需的 TLS 憑證文件路徑,若啟"
"用 HTTPS 則必須配置此文件。"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:34
msgid ""
"Dashboard TLS Key File specifies the path to the TLS private key file for "
"enabling HTTPS access."
"<br />Required if HTTPS is enabled."
msgstr ""
"Dashboard TLS Key File 用於指定啟用 HTTPS 存取所需的 TLS 私鑰文件路徑,若啟​"
"用 HTTPS 則必須配置此文件。"
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:116
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:118
#: applications/luci-app-frps/htdocs/luci-static/resources/view/frps.js:128