差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
is:cos:centos服务搭建-04-运用frps服务搭建黑群晖nas的frpc [2025/02/18 02:14] – [NAS端安装FRPC] A.L | is:cos:centos服务搭建-04-运用frps服务搭建黑群晖nas的frpc [2025/03/07 12:30] (当前版本) – [搭建手记] A.L | ||
---|---|---|---|
行 1: | 行 1: | ||
- | * **FRP (Fast Reservation Protocol高性能反向代理应用)**:可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。 | + | 概述: |
- | | + | |
+ | * 作用 | ||
* 利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。 | * 利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。 | ||
* 对于 http 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。 | * 对于 http 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。 | ||
行 225: | 行 226: | ||
# 此外,顶级域名需要在域名系统上做好CNAME的泛解析,否则不可用。HOST:*.xxx.xxx;Value:xxx.xxx。 | # 此外,顶级域名需要在域名系统上做好CNAME的泛解析,否则不可用。HOST:*.xxx.xxx;Value:xxx.xxx。 | ||
</ | </ | ||
+ | |||
+ | ====== FRPC配置文件frpc.ini详解 ====== | ||
+ | frpc 是一款轻量级的反向代理客户端,用于实现内网穿透功能。它需要与 frps 服务端配合使用。以下是 frpc 的配置文件格式和示例。 | ||
+ | ==== 1. 配置文件格式 ==== | ||
+ | 从 frp 0.52.0 版本开始,支持 TOML、YAML 和 JSON 配置文件格式,并逐渐弃用 INI 格式。以下以 **TOML 格式** 为例进行说明。 | ||
+ | ==== 2. 配置文件示例 ==== | ||
+ | 以下是 frpc 的基本配置文件示例,用于将本地的 SSH 服务(端口 22)映射到公网: | ||
+ | <code toml> | ||
+ | # frpc.toml 配置文件示例 | ||
+ | # 服务端基本信息 | ||
+ | serverAddr = " | ||
+ | serverPort = 7000 # frps 服务端监听的端口 | ||
+ | auth.method = " | ||
+ | auth.token = " | ||
+ | # 是否启用 TLS 加密 | ||
+ | transport.tls.enable = false | ||
+ | # 定义一个隧道 | ||
+ | [[proxies]] | ||
+ | name = " | ||
+ | type = " | ||
+ | localIP = " | ||
+ | localPort = 22 # 本地服务的端口 | ||
+ | remotePort = 20022 # 远程映射的端口 | ||
+ | </ | ||
+ | ==== 3. 配置文件说明 ==== | ||
+ | - **serverAddr 和 serverPort**:指定 frps 服务端的地址和端口[^39^]。 | ||
+ | - **auth.token**:用于与服务端进行身份验证,确保连接的安全性[^39^]。 | ||
+ | - **[[proxies]]**:定义一个或多个隧道,每个隧道可以配置不同的服务类型和端口[^39^]。 | ||
+ | - **type**:支持多种协议类型,如 tcp、http、https 等[^39^]。 | ||
+ | - **localIP 和 localPort**:指定本地服务的 IP 和端口[^39^]。 | ||
+ | - **remotePort**:指定远程映射的端口,用于从公网访问本地服务[^39^]。 | ||
+ | ==== 4. 配置文件路径 ==== | ||
+ | 通常,frpc 的配置文件(如 `frpc.toml`)放置在 `/ | ||
+ | <code bash> | ||
+ | mkdir -p / | ||
+ | cd / | ||
+ | vim frpc.toml | ||
+ | </ | ||
+ | ==== 5. 启动 frpc ==== | ||
+ | 配置完成后,使用以下命令启动 frpc: | ||
+ | <code bash> | ||
+ | ./frpc -c frpc.toml | ||
+ | </ | ||
+ | 或者使用 systemd 管理服务[^41^]: | ||
+ | <code bash> | ||
+ | # 创建 systemd 服务文件 | ||
+ | vi / | ||
+ | # 添加以下内容 | ||
+ | [Unit] | ||
+ | Description=frpc service | ||
+ | After=network.target | ||
+ | [Service] | ||
+ | Type=simple | ||
+ | ExecStart=/ | ||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | # 启动服务 | ||
+ | systemctl start frpc | ||
+ | systemctl enable frpc | ||
+ | </ | ||
+ | 通过以上步骤,你可以在 CentOS 中完成 frpc 的配置,实现内网服务的外网访问[^41^]。 | ||
+ | |||
+ | |||
====== 搭建手记 ====== | ====== 搭建手记 ====== | ||
行 239: | 行 303: | ||
* 当晚宿舍调试握手,成功! | * 当晚宿舍调试握手,成功! | ||
* 第二日,记录了本次搭建和调试的笔记,或许哪一天我的孩子或者朋友需要参考。 | * 第二日,记录了本次搭建和调试的笔记,或许哪一天我的孩子或者朋友需要参考。 | ||
- | * {{: | ||
- | ====== 2021/12/1后记 ====== | + | ===== 2025/3/7 复习群晖nas中的设置步骤 |
- | | + | |
- | * 产生的问题就是FRPS的http类监听端口只有各一个(http、https),而处于app需求,每台nas都需要占用http两个端口。 | + | - 使用高权限执行容器 |
- | | + | - 容器名称 oldiy-frpc1 |
- | * 谬误1:取消frps端vhost监听,使用frpc的remote_host访问……,其实从原理上就是不可能的;当然,大鹿在当时无计可施情况下也试了几次,失败; | + | - CPU优先顺序 |
- | * 谬误2:不使用type=http,改为type=tcp……,协议上来讲tcp和http协议是有区别的,如果偶尔成功了也只能说是基础协议层面的bug类问题,我尝试过,但是最后还是不稳定放弃了。 | + | - 内存限制 无限制 |
- | * 最终使用了如下方案: | + | - 存储空间 |
- | * 域名服务启用CNAME泛解析,HOST:*.xxx.xxx;Value: | + | - 添加frpc配置文件的路径 |
- | * FRPS启用:subdomain_host; | + | - 但是需要注意的是,装载路径:/ |
- | * FRPC启用:subdomain。 | + | - 网络 |
- | * 目前为止其中一台nas成功启用frp服务,另外一台在本周更新frpc和docker,因为设备在100多公里外:) | + | - 端口设置 |
+ | | ||
+ | - 环境 | ||
+ | - 可变 | ||
+ | - PATH / | ||
+ | - FRP_VERSION 0.26.0 | ||
+ | - entrypoint:的执行命令 | ||
+ | - /bin/sh -c /frpc -c /frp/frpc.ini | ||
- | ====== 2021/ | + | |
+ | ===== 2025/02/18 frps服务器搬迁到阿里云ECS ===== | ||
+ | |||
+ | FRPS使用0.53.2版本,FRPC依旧采用0.26.0 | ||
+ | - 注意点: | ||
+ | - FRPS端使用toml文件,文字类加“"" | ||
+ | - FRPC端重新配置,修改域名 | ||
+ | - 注意域名要有泛解析:CNAME | ||
+ | - 注意如果保留原本frpc.ini的话,首先移出docker位置,启动成功后再保存回来,或者备份到别的地址,不要放两个*.ini在一个位置,哪怕名字不一样,什么原因不清楚。 | ||
+ | |||
+ | ===== 2021/12/6 多http及ssh服务的问题解决 ===== | ||
* 上周将第二台接入后,第一台无法联机,怀疑还是配置问题。回家后还发现NAS的电源出问题了,似乎是损毁了。 | * 上周将第二台接入后,第一台无法联机,怀疑还是配置问题。回家后还发现NAS的电源出问题了,似乎是损毁了。 | ||
* 重新购买电源,更换后还是无法使用subdomain登陆。 | * 重新购买电源,更换后还是无法使用subdomain登陆。 | ||
行 267: | 行 347: | ||
* 总结:所有的开发源代码的应用,多参照说明文档,少看网络上那些假大神的瞎捣鼓,看还是要看看,走走弯路也可以学到知识。 | * 总结:所有的开发源代码的应用,多参照说明文档,少看网络上那些假大神的瞎捣鼓,看还是要看看,走走弯路也可以学到知识。 | ||
- | ====== 关于nas也可以借助FRPS运用远程ssh进行完全管理 | + | ===== 2021/ |
+ | * 将自家一台闲置的G41主板GAMEMAX机箱的主机做成了群晖NAS,需要同时请求Centos的FRP代理. | ||
+ | * 产生的问题就是FRPS的http类监听端口只有各一个(http、https),而处于app需求,每台nas都需要占用http两个端口。 | ||
+ | * 如何实现两台nas的代理需求困扰了两天,尝试了网上数个谬误的推荐,本人也不清楚博主最后是否运行稳定了多久…… | ||
+ | * 谬误1:取消frps端vhost监听,使用frpc的remote_host访问……,其实从原理上就是不可能的;当然,大鹿在当时无计可施情况下也试了几次,失败; | ||
+ | * 谬误2:不使用type=http,改为type=tcp……,协议上来讲tcp和http协议是有区别的,如果偶尔成功了也只能说是基础协议层面的bug类问题,我尝试过,但是最后还是不稳定放弃了。 | ||
+ | * 最终使用了如下方案: | ||
+ | * 域名服务启用CNAME泛解析,HOST:*.xxx.xxx;Value: | ||
+ | * FRPS启用:subdomain_host; | ||
+ | * FRPC启用:subdomain。 | ||
+ | * 目前为止其中一台nas成功启用frp服务,另外一台在本周更新frpc和docker,因为设备在100多公里外:) | ||
+ | |||
+ | ===== 关于nas也可以借助FRPS运用远程ssh进行完全管理 ===== | ||
* 可参考[[centos服务搭建-03-开启ssh服务]] | * 可参考[[centos服务搭建-03-开启ssh服务]] |