is:cos:centos服务搭建-04-运用frps服务搭建黑群晖nas的frpc

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
is:cos:centos服务搭建-04-运用frps服务搭建黑群晖nas的frpc [2025/02/18 01:20] A.Lis:cos:centos服务搭建-04-运用frps服务搭建黑群晖nas的frpc [2025/03/07 12:30] (当前版本) – [搭建手记] A.L
行 1: 行 1:
-  * **FRP (Fast Reservation Protocol高性能反向代理应用)**可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。 +概述: 
-  * **作用**+  * FRP (Fast Reservation Protocol高性能反向代理应用):内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。 
 +  * 作用
     * 利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。     * 利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。
     * 对于 http 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。     * 对于 http 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。
行 6: 行 7:
     * 可查看通过代理的所有 http 请求和响应的详细信息。(待开发)     * 可查看通过代理的所有 http 请求和响应的详细信息。(待开发)
  
-==== CentOS 7安装frps端 ====+====== CentOS 7安装frps端 ======
   * 本次安装服务应用于群晖系统,客户端为frpc0.26.0,因此,frps端使用同版本   * 本次安装服务应用于群晖系统,客户端为frpc0.26.0,因此,frps端使用同版本
     <code>     <code>
行 62: 行 63:
     <code>sudo vim /etc/systemd/system/frps.service 新建此文件,并写入以下内容</code>     <code>sudo vim /etc/systemd/system/frps.service 新建此文件,并写入以下内容</code>
  
-====== 《frps.service》文档 ======+==== 《frps.service》文档 ====
   * 注意点:/usr/etc/frps 为服务端frps的执行文件目录(可自定义)   * 注意点:/usr/etc/frps 为服务端frps的执行文件目录(可自定义)
   * 注意点:/etc/frps/frps.ini 为服务端frps.in配置文档目录(可自定义)   * 注意点:/etc/frps/frps.ini 为服务端frps.in配置文档目录(可自定义)
行 81: 行 82:
 </code> </code>
  
-====== frps.service自启动 ======+===== frps.service自启动 =====
   * vim编辑退出:Esc,# :wq(保存退出)   * vim编辑退出:Esc,# :wq(保存退出)
   * 启动并设为开机自启。   * 启动并设为开机自启。
行 98: 行 99:
     </code>     </code>
  
-====== frps.service自启动进程查看 ======+==== frps.service自启动进程查看 ====
   * 查看frp是否启动:   * 查看frp是否启动:
     <code>ps aux | grep frps</code>     <code>ps aux | grep frps</code>
行 123: 行 124:
   * 内网机器上面执行 tail -f nohup.out 查看启动命令的执行结果akerlu   * 内网机器上面执行 tail -f nohup.out 查看启动命令的执行结果akerlu
  
-====== firewall常用命令 ======+==== firewall常用命令 ====
   * 安装firewall命令   * 安装firewall命令
     <code>yum install firewalld firewalld-config</code>     <code>yum install firewalld firewalld-config</code>
行 174: 行 175:
     * 查看是否开机自启:systemctl is-enable firewalld     * 查看是否开机自启:systemctl is-enable firewalld
  
-==== NAS端安装FRPC ====+====== NAS端安装FRPC ======
   * 下载安装docker   * 下载安装docker
   * docker注册表,选用frpc 0.26.0版本(可自行选择容易下载的版本,但服务端frps必须对应同版本或者同大版本号的,如:0.34.1的话,可以用0.34.2)   * docker注册表,选用frpc 0.26.0版本(可自行选择容易下载的版本,但服务端frps必须对应同版本或者同大版本号的,如:0.34.1的话,可以用0.34.2)
   * docker注册表下载后,在映像中可以看到。选择映像中的frpc进行启动编辑,启动编辑省略,可以参考github中的导航说明。   * docker注册表下载后,在映像中可以看到。选择映像中的frpc进行启动编辑,启动编辑省略,可以参考github中的导航说明。
   * 配置frpc.ini,本次基于frpc 0.26.0版本   * 配置frpc.ini,本次基于frpc 0.26.0版本
-  * {{:20201222135026.png?200|frpc容器配置注意}} +
-  * {{:20201222135035.png?200|frpc容器配置成功}}+
  
 ===== 《frpc.ini》文档 ===== ===== 《frpc.ini》文档 =====
行 227: 行 227:
 </code> </code>
  
-==== 搭建手记 ====+====== 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 = "your_server_ip"   # frps 服务端的公网 IP 地址 
 +serverPort = 7000               # frps 服务端监听的端口 
 +auth.method = "token"           # 认证方式(默认为 token) 
 +auth.token = "your_token"       # 与服务端一致的认证 token 
 +# 是否启用 TLS 加密 
 +transport.tls.enable = false 
 +# 定义一个隧道 
 +[[proxies]] 
 +name = "ssh"                    # 隧道名称,可自定义 
 +type = "tcp"                    # 隧道类型(tcp、http、https 等) 
 +localIP = "127.0.0.1"           # 本地服务的 IP 地址 
 +localPort = 22                  # 本地服务的端口 
 +remotePort = 20022              # 远程映射的端口 
 +</code> 
 +==== 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`)放置在 `/usr/local/frpc` 目录下[^41^]。你可以通过以下命令创建目录并编辑配置文件: 
 +<code bash> 
 +mkdir -p /usr/local/frpc 
 +cd /usr/local/frpc 
 +vim frpc.toml 
 +</code> 
 +==== 5. 启动 frpc ==== 
 +配置完成后,使用以下命令启动 frpc: 
 +<code bash> 
 +./frpc -c frpc.toml 
 +</code> 
 +或者使用 systemd 管理服务[^41^]: 
 +<code bash> 
 +# 创建 systemd 服务文件 
 +vi /etc/systemd/system/frpc.service 
 +# 添加以下内容 
 +[Unit] 
 +Description=frpc service 
 +After=network.target 
 +[Service] 
 +Type=simple 
 +ExecStart=/usr/local/frpc/frpc -c /usr/local/frpc/frpc.toml 
 +[Install] 
 +WantedBy=multi-user.target 
 +# 启动服务 
 +systemctl start frpc 
 +systemctl enable frpc 
 +</code> 
 +通过以上步骤,你可以在 CentOS 中完成 frpc 的配置,实现内网服务的外网访问[^41^]。 
 + 
 + 
 + 
 +====== 搭建手记 ======
 大鹿搭建frp反向代理服务的背景: 大鹿搭建frp反向代理服务的背景:
   * 一台私有nas需要安装在农村老家的东方有线光纤宽带下,而经过确认和尝试,获取的DDNS是111.214的,也就是东方有线的私网,无法穿透。   * 一台私有nas需要安装在农村老家的东方有线光纤宽带下,而经过确认和尝试,获取的DDNS是111.214的,也就是东方有线的私网,无法穿透。
行 240: 行 303:
     * 当晚宿舍调试握手,成功!     * 当晚宿舍调试握手,成功!
     * 第二日,记录了本次搭建和调试的笔记,或许哪一天我的孩子或者朋友需要参考。     * 第二日,记录了本次搭建和调试的笔记,或许哪一天我的孩子或者朋友需要参考。
-  * {{:20201222141012.png?200|frps服务面板}} 
  
-===== 2021/12/1后记 ===== +===== 2025/3/7 复习群晖nas中的设置步骤 ===== 
-  * 将家一台闲置的G41主板GAMEMAX机箱的主机做成了群晖NAS,需要同时请求CentosFRP代理. +  - 高级设置 
-  * 产生的问题就FRPShttp类监听端口只有各一个(http、https)而处于app需求,每台nas都需要占用http两个端口 +      - 使用高权限执行容器 
-  * 如何实现两台nas的代理需求困扰了两天,尝试了网上数个谬误的推荐,本人也不清楚博主最后是否运行稳定了多久…… +      - 容器名称 oldiy-frpc1 
-    * 谬误1取消frps端vhost监听,使用frpc的remote_host访问……其实从原理上就是不可能的;当然,大鹿在当时无计可施情况下也试了几次,失败; +      - CPU优先顺序 动 
-    * 谬误2使用type=http改为type=tcp……,协议上来讲tcp和http协议是有区别的,如果偶尔成功了也只能说是基础协议层面的bug问题我尝试过,但是最后还是不稳定放弃了。 +      - 内存限制 无限制 
-  * 最终使用了如下方案: +  - 存储空间 
-    域名服务启用CNAME泛解析,HOST*.xxx.xxx;Value:xxx.xxx; +      - 添加frpc配文件路径 
-    * FRPS用:subdomain_host; +      - 但是需要注意是,装载路径:/frp/frp.ini # 这docker装载路径不是nas的本地路径 
-    * FRPC启用:subdomain。 +  - 网络 
-  * 目前为止其中一台nas成功启用frp服务另外一台本周更新frpc和docker,因为设备在100多公里外:)+  - 端口设置 
 +  - 链接 
 +  - 环境 
 +      - 可变  值: 
 +          - PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr…… 
 +          - FRP_VERSION 0.26.0 
 +      - entrypoint的执行命令 
 +      - /bin/sh -c /frpc -c /frp/frpc.ini 
 + 
 + 
 +===== 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服务的问题解决 =====+===== 2021/12/6 多http及ssh服务的问题解决 =====
   * 上周将第二台接入后,第一台无法联机,怀疑还是配置问题。回家后还发现NAS的电源出问题了,似乎是损毁了。   * 上周将第二台接入后,第一台无法联机,怀疑还是配置问题。回家后还发现NAS的电源出问题了,似乎是损毁了。
   * 重新购买电源,更换后还是无法使用subdomain登陆。   * 重新购买电源,更换后还是无法使用subdomain登陆。
行 267: 行 346:
   * 自此,多台frpc的代理服务配置完成,结案。   * 自此,多台frpc的代理服务配置完成,结案。
   * 总结:所有的开发源代码的应用,多参照说明文档,少看网络上那些假大神的瞎捣鼓,看还是要看看,走走弯路也可以学到知识。   * 总结:所有的开发源代码的应用,多参照说明文档,少看网络上那些假大神的瞎捣鼓,看还是要看看,走走弯路也可以学到知识。
 +
 +===== 2021/12/1后记 =====
 +  * 将自家一台闲置的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:xxx.xxx;
 +    * FRPS启用:subdomain_host;
 +    * FRPC启用:subdomain。
 +  * 目前为止其中一台nas成功启用frp服务,另外一台在本周更新frpc和docker,因为设备在100多公里外:)
  
 ===== 关于nas也可以借助FRPS运用远程ssh进行完全管理 ===== ===== 关于nas也可以借助FRPS运用远程ssh进行完全管理 =====
   * 可参考[[centos服务搭建-03-开启ssh服务]]   * 可参考[[centos服务搭建-03-开启ssh服务]]
  • is/cos/centos服务搭建-04-运用frps服务搭建黑群晖nas的frpc.1739841607.txt.gz
  • 最后更改: 2025/02/18 01:20
  • A.L