当前位置: 首页 > backend >正文

【frp XTCP 穿透配置教程

Frp XTCP 穿透配置教程

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

1. 准备工作

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

2. 服务端配置

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

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

启动服务端:

./frps -c ./frps.ini

3. 被访问端配置(p2p_fny)

[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)

[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 选项:

fallbackTo = "stcp"          # 回退到 stcp 模式
fallbackTimeoutMs = 500      # 500ms 后回退

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

http://www.xdnf.cn/news/6404.html

相关文章:

  • 关于AI人工智能的知识图谱简介
  • 2025认证杯数学建模第二阶段A题小行星轨迹预测思路+模型+代码
  • Framebuffer显示bmp图片
  • 【实证分析】MDA文本相似度分析(2008-2023年)
  • 基于redis实现分布式锁方案实战
  • Linux:理解文件系统
  • 网络损伤仪功能介绍与应用场景剖析
  • Java详解LeetCode 热题 100(17):LeetCode 41. 缺失的第一个正数(First Missing Positive)详解
  • JavaScript的BOM、DOM编程
  • Java并发编程:CAS操作
  • java调用get请求和post请求
  • 无人机屏蔽与滤波技术模块运行方式概述!
  • Git命令总结
  • 视频质量分析时,遇到不同分辨率的对照视频和源视频,分辨率对齐的正确顺序。
  • Linux515 rsync定时备份
  • 使用LoRA微调Qwen2.5-VL-7B-Instruct完成电气主接线图识别
  • Android 图片自动拉伸不变形,点九
  • Linux 系统中的文件系统层次结构和重要目录的用途。
  • 隆重推荐(Android 和 iOS)UI 自动化工具—Maestro
  • 浏览器宝塔访问不了给的面板地址
  • CSS图片垂直居中问题解决方案
  • 【数据结构入门训练DAY-35】棋盘问题
  • 本地文件操作 MCP (多通道处理) 使用案例
  • 使用 TypeScript + dhtmlx-gantt 在 Next.js 中实现
  • docker(四)使用篇一:docker 镜像仓库
  • 全球宠物经济新周期下的亚马逊跨境采购策略革新——宠物用品赛道成本优化三维路径
  • SQL练习(3/81)
  • 【Python】【面试凉经】Fastapi为什么Fast
  • uniapp,小程序中实现文本“展开/收起“功能的最佳实践
  • 5G + 区块链:技术巨浪下的新型数字生态!