frp和iStoreOS搭配时对于Minecraft服务器转发的小插曲
故障排查实录:旁路由模式下内网服务无法穿透的“非对称路由”之困
一次典型的网络故障排查,最终定位到由Windows网关错误指向旁路由导致的非对称路由问题。
问题背景
在家庭网络环境中,我搭建了以下服务架构:
- 公网服务器:阿里云ECS,运行FRP服务端(frps)
- 内网旁路由:iStoreOS系统(基于OpenWrt),运行FRP客户端(frpc),作为网络旁路设备
- 目标服务:本地Windows电脑上的Minecraft Java版服务器(端口25564)
预期目标:通过公网FRP服务穿透内网Minecraft服务器。
故障现象:通过旁路由的FRP隧道无法连接Minecraft服务器,但将frpc直接安装在Windows电脑上则可以正常穿透。
网络环境拓扑
1 | 公网客户端 -> 阿里云frps(11451端口) -> 家庭网络 -> iStoreOS旁路由(192.168.5.2) -> Windows MC服务器(192.168.5.4:25564) |
逐步排查过程
第一阶段:基础配置检查
确认FRP配置正确性
- 隧道类型:TCP
- 本地IP:正确设置为Windows内网IP(192.168.5.4)
- 本地端口:25564(与Minecraft服务器配置一致)
- 远程端口:11451(已在阿里云安全组开放)
验证旁路由FRP运行状态
1
2
3
4
5
6# 检查frpc进程
ps | grep frpc
# 确认隧道注册成功
logread | grep frp.Mechanomania
# 显示:[frp.Mechanomania] start proxy success
第二阶段:网络连通性测试
关键发现:从旁路由直接测试到Windows端口的连接
1
2
3# 使用简化版nc测试
nc 192.168.5.4 25564
# 现象:连接建立(光标卡住),但无数据返回,最终超时这一现象表明:TCP握手可以完成,但数据传输受阻。
Windows端服务验证
1
2
3
4
5
6
7# 检查服务监听状态
netstat -an | findstr :25564
# 输出显示正确监听:0.0.0.0:25564
# 本地回环测试正常
Test-NetConnection -ComputerName 127.0.0.1 -Port 25564
# TcpTestSucceeded : True
第三阶段:深入网络配置检查
排查防火墙与网络隔离
- 已确认Windows防火墙完全关闭
- 检查路由器无“客户端隔离”设置
关键突破:发现异常网关配置
1
2
3
4
5
6
7
8# Windows网络配置检查
ipconfig
# 关键输出:
# 以太网适配器 以太网 3:
# IPv4 地址 . . . . . . . . . . . . : 192.168.5.4
# 子网掩码 . . . . . . . . . . . . : 255.255.255.0
# 默认网关. . . . . . . . . . . . . : 192.168.5.2 <-- 问题所在!
第四阶段:问题根源分析
根本原因:非对称路由问题
连接建立:iStoreOS(192.168.5.2)向Windows(192.168..5.4)发起连接,SYN包直接送达。
响应异常:Windows收到SYN后,需要发送SYN-ACK响应。但由于其网关设置为192.168.5.2,它将本应直接回复给192.168.5.2的响应包,又发往了网关192.168.5.2本身。
数据包迷失:iStoreOS收到一个”发给自己但不是自己发起”的TCP握手响应,不知如何处理而丢弃,导致连接卡在握手后的阶段,无法传输实际数据。
解决方案
临时验证方案
1 | # 以管理员身份运行PowerShell |
永久修复方案
- 控制面板 → 网络和共享中心 → 更改适配器设置
- 右键当前网络连接 → 属性 → Internet协议版本4(TCP/IPv4)
根据当前设置选择:
- 自动获取IP地址:点击”高级”,在”网关”栏中删除192.168.5.2,添加主路由器地址
- 手动设置IP地址:直接修改”默认网关”为主路由器地址(如192.168.5.1)
验证旁路由自身网关设置
1
2
3# 在iStoreOS上检查
ip route show default
# 应显示:default via 192.168.5.1 dev ...
技术要点总结
- 旁路由架构中,终端设备的默认网关应指向主路由器,而非旁路由设备本身。
- 网络排查方法论:
- 遵循”从底向上”原则:物理连接 → 网络层 → 传输层 → 应用层
- 善用基础工具:
nc/telnet测试连通性,netstat检查服务状态,ipconfig验证网络配置 - 关注异常现象:能建立连接但无数据传输,往往指向路由或防火墙问题
- FRP故障排查要点:
- 先确认frpc隧道成功建立
- 在frpc侧测试到local_ip:local_port的连通性
- 关注frpc日志中的具体错误信息
经验教训
- 网关配置是旁路由部署中最常见的错误点,配置后务必检查所有设备的网关设置。
- 网络故障现象与根本原因可能相距甚远,本次表现为FRP穿透失败,根本原因却是Windows网络配置错误。
- 系统性的排查方法比盲目尝试更有效,建立清晰的排查路径能极大提高问题解决效率。
修正后拓扑:1
公网客户端 -> 阿里云frps -> iStoreOS旁路由 -> Windows MC服务器(网关正确指向主路由器)
结果:网关修正后,FRP隧道立即恢复正常,可通过公网成功访问内网Minecraft服务器。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 冷水煮土豆!




