【frp XTCP 穿透配置教程

Frp XTCP 穿透配置教程

XTCP 是 frp 提供的一种点对点穿透技术,可以在不经过服务器中转的情况下直接建立连接,降低延迟并提高传输速度。以下是配置 XTCP 穿透的详细教程。

1. 准备工作

  • 确保已安装最新版 frp(客户端和服务端版本需一致)
  • 拥有一个公网服务器用于 frp 服务端
  • 确保两端网络支持 UDP 穿透(某些严格 NAT 环境可能不支持)

2. 服务端配置

首先配置 frps.ini(服务端配置文件):

ini 复制代码
[common]
bind_port = 7000  # frp 服务端端口
auth.token = "your_token_here"  # 认证令牌

启动服务端:

复制代码
./frps -c ./frps.ini

3. 被访问端配置(p2p_fny)

ini 复制代码
[common]
server_addr = "your_server_ip"  # 服务器公网IP
server_port = 7000
auth.token = "your_token_here"  # 与服务端一致
login_fail_exit = false

[[proxies]]
name = "p2p_fny"
type = "xtcp"
secretKey = "12"  # 共享密钥
localIP = "127.0.0.1"    # 本地服务IP
localPort = 5930         # 本地服务端口

启动被访问端客户端:

复制代码
./frpc -c ./frpc.ini

4. 访问端配置(df_xtcp_dlebt)

ini 复制代码
[common]
server_addr = "your_server_ip"  # 服务器公网IP
server_port = 7000
auth.token = "your_token_here"  # 与服务端一致
login_fail_exit = false

[[visitors]]
name = "df_xtcp_dlebt"
type = "xtcp"
serverName = "p2p_fny"       # 对应被访问端的name
secretKey = "12"     # 与被访问端一致
bindAddr = "127.0.0.1"       # 本地绑定IP
bindPort = 5246              # 本地绑定端口
keepTunnelOpen = true        # 保持隧道开放

启动访问端客户端:

复制代码
./frpc -c ./frpc.ini

5. 使用说明

  1. 访问端启动后,可以通过访问 127.0.0.1:5246 来连接到被访问端的 127.0.0.1:5666 服务
  2. 如果 XTCP 穿透失败,可以配置 fallback 选项回退到普通 TCP 模式
  3. 使用 keepTunnelOpen = true 可以保持隧道开放,避免频繁建立连接

6. 常见问题

Q: 连接失败怎么办?

A:

  1. 检查两端 secretKey 是否一致
  2. 检查服务端和客户端 token 是否一致
  3. 检查防火墙是否放行了相关 UDP 端口
  4. 尝试关闭防火墙测试

Q: 如何知道是否成功建立了 P2P 连接?

A: 查看客户端日志,如果看到 "xtcp direct connection established" 表示成功建立了 P2P 连接

Q: 为什么有时延迟还是很高?

A: 某些网络环境下无法建立真正的 P2P 连接,frp 会自动回退到服务器中转模式

7. 高级配置

如果需要更高的可靠性,可以配置 fallback 选项:

ini 复制代码
fallbackTo = "stcp"          # 回退到 stcp 模式
fallbackTimeoutMs = 500      # 500ms 后回退

这样当 XTCP 无法建立连接时,会自动尝试使用 STCP 模式通过服务器中转连接。

相关推荐
伤不起bb30 分钟前
MySQL 高可用
linux·运维·数据库·mysql·安全·高可用
whgjjim3 小时前
docker迅雷自定义端口号、登录用户名密码
运维·docker·容器
瀚高PG实验室6 小时前
连接指定数据库时提示not currently accepting connections
运维·数据库
QQ2740287566 小时前
Soundness Gitpod 部署教程
linux·运维·服务器·前端·chrome·web3
南方以南_6 小时前
Ubuntu操作合集
linux·运维·ubuntu
爱莉希雅&&&8 小时前
shell脚本之条件判断,循环控制,exit详解
linux·运维·服务器·ssh
Sylvan Ding9 小时前
远程主机状态监控-GPU服务器状态监控-深度学习服务器状态监控
运维·服务器·深度学习·监控·远程·gpu状态
北漂老男孩10 小时前
在 Linux 上安装 MATLAB:完整指南与疑难解决方案
linux·运维·matlab
Why not try?!10 小时前
Centos7 中 Docker运行配置Apache
运维·docker·容器