记录一下FRP XTCP的配置方法
什么是xtcp
在 FRP(Fast Reverse Proxy)的 XTCP 功能中,frps(FRP
服务端)扮演着至关重要的角色,尽管它不直接参与数据的最终传输。XTCP 是一种穿透技术,使得处于不同 NAT
或防火墙后的两个网络设备能够建立直接的连接。在这种模式下,frps的作用主要包括:
中继握手信息:当两个客户端(通过
frpc运行)尝试建立 XTCP 连接时,frps作为中介,负责转发这两个客户端之间的握手信息。这是建立 P2P(点对点)连接的先决条件,因为大多数客户端都处在 NAT
或防火墙后面,无法直接发现对方或建立连接。协助穿透 NAT:在 XTCP 的握手过程中,
frps会帮助两端的frpc客户端交换必要的信息(如公网 IP 地址和端口),这些信息是实现 NAT 穿透的关键。通过这种方式,即便客户端位于复杂的网络环境中,也能够尝试直接相互连接。回退到中继传输(可选):在某些情况下,比如当 NAT 类型特别严格或环境复杂到阻碍了直接的 P2P 连接时,
frps可以提供回退方案,即通过服务器中继来传输数据。虽然这增加了延迟并需要更多的服务器带宽,但它确保了连接的可靠性。需要注意的是,FRP 的
XTCP 功能主要目标是尽量实现直接的 P2P 连接,而不依赖服务器中继传输数据。安全性和访问控制:
frps还管理着客户端的认证过程,确保只有授权的客户端可以建立连接。此外,它可以对连接进行加密和压缩设置,提高数据传输的安全性和效率。总之,虽然
frps在 XTCP
模式下的数据传输过程中不直接参与数据的最终传递,但它在建立连接的初期阶段发挥着至关重要的作用,包括但不限于握手信息的中继、帮助实现 NAT
穿透、提供回退的中继传输方案以及执行安全性和访问控制。for ChatGPT
1. 确认环境要求
两个客户端:确保你有两个处于不同 NAT 或防火墙后的客户端设备,这两个客户端都需要能够访问到 FRP 服务器。
一个服务器:一个可以被上述客户端访问的服务器,用来部署 FRP 服务端。这个服务器需要有固定的公网 IP 或域名。
这里我准备了一台内网服务器
' A ',两台公网服务器,含一台优质线路,低宽带低流量' S ',一台高宽带高流量线路一般的服务器' D ')。实测基本能跑满加宽上行。)
2. 安装 FRP
frps为服务端,frpc为客户端,安装方法请参考安装 | frp (gofrp.org)
Docker compose安装示列,包含frps,frpc
1 | version: '3' |
- 内网服务器
A安装frpc - 公网服务器
D安装frpc - 公网服务器
S安装frps
3. 配置
这里以穿透内网群晖为例
下文看不懂可以参考点对点内网穿透 | frp (gofrp.org)
1.群晖或任意内网设备安装好frpc后,这里称为 被访问者 A
进入你的安装目录配置.toml文件
1 | cd opt/frpc/data |
1 | serverAddr = "1.1.1.1"#服务器 S 的IP地址 |
ctrl+x y保存.
2.配置frps服务端 S
1 | cd opt/frps/data#这里是你的安装路径 |
1 | bindPort = 7000 |
3.配置frpc 访问者 D
1 | cd opt/frpc/data |
1 | serverAddr = "1.1.1.1"#服务器 S 的IP地址 |
配置完成后重启下一服务器 s a d
接下来使用D服务器的IP+15001就能访问内网群晖了。
反向代理简单示列
1 | location ^~ / { |