From 2f5067f5e338c5f6044ccfc574cd01eb3949488c Mon Sep 17 00:00:00 2001 From: "admin@cnod.net" Date: Thu, 6 Nov 2025 19:25:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=A1=B9=E7=9B=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + frp-client/CHANGELOG.md | 29 +++++++ frp-client/DOCS.md | 119 +++++++++++++++++++++++++++ frp-client/README.md | 14 ++++ frp-client/config.yaml | 38 +++++++++ frp-client/icon.png | Bin 0 -> 5264 bytes frp-client/logo.png | Bin 0 -> 5264 bytes frp-client/translations/en.yaml | 50 +++++++++++ frp-client/translations/zh-Hans.yaml | 50 +++++++++++ repository.yaml | 4 + 10 files changed, 305 insertions(+) create mode 100644 README.md create mode 100644 frp-client/CHANGELOG.md create mode 100644 frp-client/DOCS.md create mode 100644 frp-client/README.md create mode 100644 frp-client/config.yaml create mode 100644 frp-client/icon.png create mode 100644 frp-client/logo.png create mode 100644 frp-client/translations/en.yaml create mode 100644 frp-client/translations/zh-Hans.yaml create mode 100644 repository.yaml diff --git a/README.md b/README.md new file mode 100644 index 0000000..35ec14c --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +暂无 \ No newline at end of file diff --git a/frp-client/CHANGELOG.md b/frp-client/CHANGELOG.md new file mode 100644 index 0000000..49e9fc5 --- /dev/null +++ b/frp-client/CHANGELOG.md @@ -0,0 +1,29 @@ +### 0.62.1 (04-28-2025) +- 版本升级 +### 0.62.0 (04-27-2025) +- 版本升级 +### 0.61.2(04-09-2025) + +1. 特征 + + - 支持frpc代理命令中的元数据和注释。 + +1. 修复 + + - 适当释放服务中的资源。Close()用于在用作库时防止资源泄漏。 + +### 0.61.0(10-30-2024) + +- 版本升级 + +### 0.59.0(07-09-2024) + +- 版本升级 + +### 0.54.0-2(04-07-2024) + +- 版本升级 + +### 0.54.0 (02-26-2024) + +- 首次推出 diff --git a/frp-client/DOCS.md b/frp-client/DOCS.md new file mode 100644 index 0000000..b840a97 --- /dev/null +++ b/frp-client/DOCS.md @@ -0,0 +1,119 @@ +# FRP Client + +## 配置说明 + + +- 按照实际情况填写相关"配置" + +- 修改Home Assistant `config/configuration.yaml` 添加: + +```yaml +http: + use_x_forwarded_for: true + trusted_proxies: + - 127.0.0.1 +``` +修改之后,重启HA + +- 配置参数解释: + +```yaml +serverAddr: frp.freefrp.net +serverPort: 7000 +authToken: freefrp.net +proxies: + - name: "nas_yourdomain_com_http" + type: "http" + localIP: "192.168.1.8" + localPort: 5000 + customDomains: "nas.yourdomain.com" + - name: "nas_yourdomain_com_https" + type: "https" + localIP: "192.168.1.8" + localPort: 5001 + customDomains: "nas.yourdomain.com" + - name: "yourname_liunx_ssh" + type: "tcp" + localIP: "192.168.1.21" + localPort: 22 + remotePort: 22222 + - name: "yourname_window10_rdp" + type: "tcp" + localIP: "192.168.1.10" + localPort: 3389 + remotePort: 33333 +``` +#### 此配置是frp客户端中重要的配置文件frpc.toml的一小部分,错误的配置会导致服务无法访问,部分重要的参数会直接导致 frp 客户端无法启动,请不要在配置文件中写入中文注释,参考以下文档仔细修改每条参数。 + +此配置主要分为两部分,其中第一部分为服务器连接配置,第二部分为所需穿透的各项服务配置,服务配置又分为需要 **Web** 访问的 **HTTP / HTTPS** 协议和 **TCP / UDP** 协议。 + +--- + +### 服务器连接配置 + +服务提供商提供的 frp 服务器信息配置 +```yaml +serverAddr: "frp.freefrp.net" #服务提供商提供的 frp 服务器 IP 地址或者域名地址 +serverPort: 7000 #服务提供商提供的 frp 服务端口号 +authToken: "freefrp.net" #服务提供商提供的 token 密码 +``` + +--- + +### HTTP / HTTPS 协议 Web 穿透服务 + +同一个域名只能穿透一个 HTTP / HTTPS 服务,如需穿透多个 Web,请分别为每个 Web 服务分配各自的域名,并正确的将 CNAME 或 A 记录指向 frp 服务器的域名或 IP。 + +**例如**:示例中 **nas.yourdomain.com** 已经分别配置到了群晖 NAS 的 HTTP 和 HTTPS 端口。如果本地还有其他例如博客的 Web 服务器需要穿透,请再分配例如 www.yourdomain.com 或 blog.yourdomain.com 的二级域名来使用。 + + +```yaml +- name: "nas_yourdomain_com_http" #(可选)服务名称: 此处为该条穿透服务的名称,必须修改,且不能与其他用户重复。为保证唯一性,建议以类似示例中 xxx_xxx_com_http 的方式命名。此条记录重复会导致 frp 客户端无法启动,也可以删除此name项,本frp已经设置了随机服务名称,规范为: frp服务器地址_包含大小写字母和数字的10位随机字符串,例如:frp_freefrp.net_0lAqSBPI8F 。 + type: "http" #(必选)协议类型: 确保本条穿透服务使用此协议能够在内网正常使用或访问。例如,尝试在本地访问 http://内网IP:内网端口 确保能够正常浏览。 + localIP: "192.168.1.8" #(必选)内网 IP:本地服务所在设备的内网 IP 地址。由于 frp 客户端有可能安装在 docker 容器中,所以请不要使用 127.0.0.1 来表示本机 IP。 + localPort: 5000 #(必选)本地端口:本地服务的端口号。例如群晖 NAS 的 HTTP 管理端口号为 5000。 + customDomains: "nas.yourdomain.com" #(必选)自定义域名:为本条穿透服务提供的域名,请确保在域名服务商后台将该域名的 CNAME 指向了本 frp 服务器地址,也就是上文的 serverAddr 地址,如果 serverAddr 为 IP,则指向 A 记录到服务器 IP。配置成功后可以使用 http://nas.yourdomain.com 访问你的群晖 NAS。 +``` +**重点提示**:当 **type = "http"** 或者 **"https"** 协议时, **custom_domains** 必须存在。**如果没有此参数会导致 frp 客户端无法启动。** + +--- + +```yaml +- name: "nas_yourdomain_com_https" #(可选)服务名称: 此处为该条穿透服务的名称,必须修改,且不能与其他用户重复。为保证唯一性,建议以类似示例中 xxx_xxx_com_https 的方式命名。此条记录重复会导致 frp 客户端无法启动,也可以删除此name项,本frp已经设置了随机服务名称,规范为: frp服务器地址_包含大小写字母和数字的10位随机字符串,例如:frp_freefrp.net_0lAqSBPI8F。 + type: "https" #(必选)协议类型: 确保本条穿透服务使用此协议能够在内网正常使用或访问。例如,尝试在本地访问 https://内网IP:内网端口 确保能够正常浏览。 + localIP: "192.168.1.8" #(必选)内网 IP:本地服务所在设备的内网 IP 地址。由于 frp 客户端有可能安装在 docker 容器中,所以请不要使用 127.0.0.1 来表示本机 IP。 + localPort: 5001 #(必选)本地端口:本地服务的端口号。例如群晖 NAS 的 HTTPS 管理端口号为 5001。 + customDomains: "nas.yourdomain.com" #(必选)自定义域名:为本条穿透服务提供的域名,请确保在域名服务商后台将该域名的 CNAME 指向了本 frp 服务器地址,也就是上文的 serverAddr 地址,如果 serverAddr 为 IP,则指向 A 记录到服务器 IP。配置成功后可以使用 http://nas.yourdomain.com 访问你的群晖 NAS。 +``` +**重点提示**:当 **type = "http"** 或者 **"https"** 协议时, **custom_domains** 必须存在。**如果没有此参数会导致 frp 客户端无法启动。** + +--- + +### TCP/UDP + +```yaml +- name: yourname_linux_ssh #(可选)服务名称: 此处为该条穿透服务的名称,必须修改,且不能与其他用户重复。为保证唯一性,建议以类似示例中 yourname_linux_ssh 的方式命名。此条记录重复会导致 frp 客户端无法启动,也可以删除此name项,本frp已经设置了随机服务名称,规范为: frp服务器地址_包含大小写字母和数字的10位随机字符串,例如:frp_freefrp.net_0lAqSBPI8F。 + type: tcp #(必选)协议类型: 确保本条穿透服务使用此协议能够在内网正常使用或访问。例如,尝试在本地终端执行 ssh root@192.168.1.21 确保能够正常登录。 + localIP: 192.168.1.21 #(必选)内网 IP:本地服务所在设备的内网 IP 地址。由于 frp 客户端有可能安装在 docker 容器中,所以请不要使用 127.0.0.1 来表示本机 IP。 + localPort: 22 #(必选)本地端口:本地服务的端口号。例如,本地 linux 服务器的默认 SSH 登录端口为 22。 + remotePort: 22222 #(必选)远程端口:远程服务的端口号。自定义填写一个远程服务端口号,例如 22222,成功连接后,可以使用 ssh -p 22222 root@frp.freefrp.net 来远程登录你的内网 Linux 服务器。 +``` + +**远程端口号(remotePort)必须根据服务提供商提供的服务端口范围进行自选填写,确保不要与其他用户重复,如果访问的内容不是自己的服务,则表示该端口号已被其他用户使用。此条记录重复或者超出端口号范围会导致无法连接或者 frp 客户端无法启动。** + +**重点提示**:当 **type = "tcp"** 时,无需配置上文的两条域名记录,可以直接使用 frp 服务器的地址作为域名,也可以将自己的域名 CNAME 或 A 记录 指向 frp 服务器的域名或 IP。 + +--- + +```yaml +- name: yourname_windows10_rdp #(可选)服务名称: 此处为该条穿透服务的名称,必须修改,且不能与其他用户重复。为保证唯一性,建议以类似示例中 yourname_windows10_rdp 的方式命名。此条记录重复会导致 frp 客户端无法启动,也可以删除此name项,本frp已经设置了随机服务名称,规范为: frp服务器地址_包含大小写字母和数字的10位随机字符串,例如:frp_freefrp.net_0lAqSBPI8F。 + type: tcp #(必选)协议类型:确保本条穿透服务使用此协议能够在内网正常使用或访问。例如,尝试在本地使用 Microsoft Remote Desktop 来远程访问该电脑,确保能够正常登录。 + localIP: 192.168.1.10 #(必选)内网 IP:本地服务所在设备的内网 IP 地址。由于 frp 客户端有可能安装在 docker 容器中,所以请不要使用 127.0.0.1 来表示本机 IP。 + localPort: 3389 #(必选)本地端口:本地服务的端口号。例如,本地 Windows RDP 的默认端口为 3389。 + remotePort: 33333 #(必选)远程端口:远程服务的端口号。自定义填写一个远程服务端口号,例如 33333,成功连接后,可以使用 Microsoft Remote Desktop 将地址填写为 frp.freefrp.net:33333 来远程登录你的内网 Windows。 +``` +**远程端口号(remotePort)必须根据服务提供商提供的服务端口范围进行自选填写,确保不要与其他用户重复,如果访问的内容不是自己的服务,则表示该端口号已被其他用户使用。此条记录重复或者超出端口号范围会导致无法连接或者 frp 客户端无法启动。** + +**重点提示**:当 **type = tcp** 时,无需配置上文的两条域名记录,可以直接使用 frp 服务器的地址作为域名,也可以将自己的域名 CNAME 或 A 记录 指向 frp 服务器的域名或 IP。 + + diff --git a/frp-client/README.md b/frp-client/README.md new file mode 100644 index 0000000..2e56a02 --- /dev/null +++ b/frp-client/README.md @@ -0,0 +1,14 @@ +# HaDB addons:FRP Client + +## 关于 + +您可以使用此工具通过端口转发实现对本地Home Assistant操作系统的远程访问。 + +## 本项目为Frp HA客户端 + +- 源码:https://github.com/huxiaoxu2019/hass-addon-frp-client +- 文档:https://gofrp.org/zh-cn/ +- 依赖:https://github.com/fatedier/frp + +## 与 0.51 版本区别 +- 配置:支持 TOML、YAML 和 JSON 进行配置。请注意,INI 已弃用,并将在将来的版本中删除。新功能将仅在 TOML、YAML 或 JSON 中可用。需要这些新功能的用户应相应地切换其配置格式。 \ No newline at end of file diff --git a/frp-client/config.yaml b/frp-client/config.yaml new file mode 100644 index 0000000..a96e86d --- /dev/null +++ b/frp-client/config.yaml @@ -0,0 +1,38 @@ +name: "FRP Client" +slug: "frp_client" +version: "0.62.1" +description: "您可以使用此工具通过端口转发实现对本地Home Assistant操作系统的远程访问" +url: https://hadb.cn/addons +host_network: true +startup: application +boot: "auto" +init: false +image: r.hassbus.com/wghaos/frp-client +map: + - share:rw +privileged: + - NET_ADMIN +devices: + - /dev/net/tun +arch: + - aarch64 + - amd64 +options: + serverAddr: "frp.freefrp.net" + serverPort: 7000 + authToken: "freefrp.net" + proxies: [] + debug: false +schema: + serverAddr: str + serverPort: int + authToken: str + proxies: + - type: str + localIP: str + localPort: int + name: str? + customDomains: str? + subdomain: str? + remotePort: int? + debug: bool? \ No newline at end of file diff --git a/frp-client/icon.png b/frp-client/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..94b2ad2dba9c9bfa459894c2fee6433ec97ed317 GIT binary patch literal 5264 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 Xdf+!G8nFRY8iBS3R{gcAUFd%R&6IoZ literal 0 HcmV?d00001 diff --git a/frp-client/logo.png b/frp-client/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..94b2ad2dba9c9bfa459894c2fee6433ec97ed317 GIT binary patch literal 5264 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 Xdf+!G8nFRY8iBS3R{gcAUFd%R&6IoZ literal 0 HcmV?d00001 diff --git a/frp-client/translations/en.yaml b/frp-client/translations/en.yaml new file mode 100644 index 0000000..7ac8d4d --- /dev/null +++ b/frp-client/translations/en.yaml @@ -0,0 +1,50 @@ +--- +configuration: + serverAddr: + name: serverAddr + description: >- + The address to connect to the server. + serverPort: + name: serverPort + description: >- + The default port for connecting to the server is 7000. + authToken: + name: authToken + description: >- + Token authentication. + webServerAddr: + name: webServerAddr + description: >- + Client AdminServer address configuration. + webServerPort: + name: webServerPort + decription: >- + Client AdminServer port configuration. + webServerUser: + name: webServerUser + description: >- + Client AdminServer user configuration. + webServerPassword: + name: webServerPassword + description: >- + Client AdminServer password configuration. + customDomain: + name: customDomain + description: >- + Custom field. + proxyName: + name: proxyName + description: >- + Agent name. + proxyType: + name: proxyType + description: >- + Agency Agreement. + localPort: + name: localPort + description: >- + Local port. + remotePort: + name: remotePort + description: >- + Remote_port. \ No newline at end of file diff --git a/frp-client/translations/zh-Hans.yaml b/frp-client/translations/zh-Hans.yaml new file mode 100644 index 0000000..e9a5aaa --- /dev/null +++ b/frp-client/translations/zh-Hans.yaml @@ -0,0 +1,50 @@ +--- +configuration: + serverAddr: + name: FRP服务端地址 + description: >- + 连接FRP服务端的地址。 + serverPort: + name: FRP服务器端口 + description: >- + 连接FRP服务端的端口。 + authToken: + name: 验证令牌 + description: >- + 身份验证令牌。 + webServerAddr: + name: 客户端地址 + description: >- + 客户端 AdminServer地址配置。 + webServerPort: + name: 端口配置 + description: >- + 客户端 AdminServer 端口配置。 + webServerUser: + name: 用户名 + description: >- + 客户端 AdminServer 用户名配置。 + webServerPassword: + name: 密码 + description: >- + 客户端 AdminServer 密码配置。 + customDomain: + name: 自定义二级域名 + description: >- + 自定义二级域名(填写需要绑定的二级域名)。 + proxyName: + name: 配置项名称 + description: >- + 该配置信息的名称(没特殊需求默认即可)。 + proxyType: + name: 代理协议 + description: >- + 代理协议。 + localPort: + name: Web本地端口 + description: >- + HomeAssistant的Web本地端口。 + remotePort: + name: Web访问端口 + description: >- + HomeAssistant的Web访问端口。 \ No newline at end of file diff --git a/repository.yaml b/repository.yaml new file mode 100644 index 0000000..f11026b --- /dev/null +++ b/repository.yaml @@ -0,0 +1,4 @@ +name: 'Add-ons by HaDB.cn' +udev: true +url: 'https://hadb.cn/addons' +maintainer: Hadb