添加项目文件。

This commit is contained in:
2025-11-06 19:25:45 +08:00
parent b20d456d6d
commit 2f5067f5e3
10 changed files with 305 additions and 0 deletions

29
frp-client/CHANGELOG.md Normal file
View File

@@ -0,0 +1,29 @@
### 0.62.1 (04-28-2025)
- 版本升级
### 0.62.0 (04-27-2025)
- 版本升级
### 0.61.204-09-2025
1. 特征
- 支持frpc代理命令中的元数据和注释。
1. 修复
- 适当释放服务中的资源。Close用于在用作库时防止资源泄漏。
### 0.61.010-30-2024
- 版本升级
### 0.59.007-09-2024
- 版本升级
### 0.54.0-204-07-2024
- 版本升级
### 0.54.0 02-26-2024
- 首次推出

119
frp-client/DOCS.md Normal file
View File

@@ -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。

14
frp-client/README.md Normal file
View File

@@ -0,0 +1,14 @@
# HaDB addonsFRP 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 中可用。需要这些新功能的用户应相应地切换其配置格式。

38
frp-client/config.yaml Normal file
View File

@@ -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?

BIN
frp-client/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

BIN
frp-client/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@@ -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.

View File

@@ -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访问端口。