type
status
date
slug
summary
tags
category
icon
password
刚刚FRP终于跑通了。
背景
我在A房有一个openwrt路由器,有公网动态的ipv4,已通过DDNS绑定域名a.thinkxyz.org做了,异地B房间放置飞牛NAS(debian系统),NAS只有动态的公网IPV6地址,DDNS绑定了域名b.thinkxyz.org,我想在A房的路由器和B房的NAS之间搭建一个frp通道,实现了外部在IPV4的环境里通过A房的路由器访问B房的NAS。
第一坑:AI的局限性
不得不承认AI(ChatGPT、DS)在协助我们学习新知识和处理问题上的强大功能,但目前的AI也能力也不是完美的,比如对于新知识,AI不一定会知道。由于我是用的最新版本的frp,所以配置文件需要用toml格式编写,我已经告诉AI这个要求,但AI就是写不对。一开始没想到这么简单的工作都不能胜任,经常将老版本的ini文件和toml文件内容混在一起或者是缺少字段,所以我花了很长时间去查找其他的原因。
从 v0.52.0 版本开始,frp 开始支持 TOML、YAML 和 JSON 作为配置文件格式。请注意,INI 已被弃用,并将在未来的发布中移除。新功能只能在TOML、YAML 或 JSON 中使用。希望使用这些新功能的用户应相应地切换其配置格式。可使用 TOML/YAML/JSON 任何一个您喜欢的格式来编写配置文件,frp 会自动适配进行解析。
1. 官方配置模板
那么frp官方要求的toml配置文件字段有哪些呢?以下是frps.toml和frpc.toml官方配置模板文件。你可以对照和参考模板的字段及注释按需配置。
2. 中文注释版
- 以下是frps.toml的中文注释版。
- 以下是frpc.toml的中文注释版。
3. 建议
- 关闭可能影响frp运行的服务:
- 临时关闭服务器端和客户端载体的防火墙。
- 关闭nginx服务(若有)。
- 建议在刚开始配置的时候循序渐进,从简单的配置开始,更加容易发现问题的原因,如果一次性将所有功能都填入配置文件设,代码越多出错的地方可能就越多,多个问题混在一起,很难找出问题及原因。比如组开始直接使用配置文件默认的bindPort = 7000开始。
基本上可以确定已经连接了frp客户端和服务器端后,配置的ssh端口始终无法使用MobaXterm模拟终端访问,经过一番摸索,发现原来对于这类通过frp代理的ssh,需要开启“允许代理转发”。

三、关于customDomains
FRP 的 HTTP/HTTPS 代理机制要求:
customDomains
必须是一个解析到 FRP服务端公网IP的域名。所以customDomains
应该是一个指向frp服务器ip地址的域名,需要在dns清单中设置。假设frp服务器地址为112.123.234.45,对应域名是c.thinkxyz.top,那么就可以通过c.thinkxyz.top访问frp服务器,服务器检测到,那么数据走向如下:四、关于vhostHTTPPort
HTTP和HTTPS是frp中针对这两种协议额外提供了一些特殊的能力。本质上目前这两种应用层协议的底层协议都是TCP。如果不需要用到相关的特殊功能,可以直接使用 TCP 类型的代理,更加简单方便。HTTP和HTTPS协议的一个特点是发送的请求都具有 Host 字段,通过该字段描述要访问的服务。基于这个特点,frp服务端只需要监听在一个端口(通过vhostHTTPPort和 vhostHTTPSPort指定)。就可以根据请求的 Host 来决定需要路由给哪一个代理,而不需要像 TCP 类型那样为每一个服务绑定一个端口。
所有http或者https不像tcp类型,不需要指定
remotePort
,相当于系统提前默认在服务器端指定了vhostHTTPPort和vhostHTTPSPort为http和https类型的远端端口。五、关于/etc/init.d/frps
在openwrt中,/
etc/init.d
目录存放的是服务的初始化脚本
。这些脚本用于控制后台服务的启动、停止、重启等操作。设置好后,就可以通过简单的命令来执行服务的各种操作,相当于C语言里调用各类函数来完成各种任务。比如,你下载下来的frp压缩包到/etc目录下后解压后有frps和frps.toml文件,那么以后可以输入路径来执行各种动作:
如果你用init.d目录下编写一个初始化脚本,那么通过
/etc/init.d/frps start
就可以执行启动。以下是升级版,更加稳定。但不能在终端上看到运行过程。
frpc的初始化脚本
六、飞牛nas
不要勾选强制HTTPS连接和重定向80和443端口

七、白天速度和晚上速度差距非常大
用iperf3跑数据,白天只有4M左右,晚上可以达到40M左右为什么?待解决
八、安装frp
1. 识别cpu架构

- 作者:ThinkXYZ
- 链接:http://thinkxyz.top/article/1e7396bd-02de-801f-91d0-d5cfd433b653
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。