记一次FRP被阻断的排查流程【未解决】

艺帆风顺 发布于 2025-04-02 14 次阅读


一、基础环境

    Frps服务端:windowns server 2012 联通云虚拟机服务器

    Frpc客户端:Linux、win 10版本系统

    Frp版本信息:frp_0.51.3_windows_amd64

二、基础配置

 1、服务端配置

    [common]bind_port = 7000

    2、客户端配置

      [common]server_addr = 1x.8x.83.111server_port = 7000

      三、故障现象

          配置完成后,客户端服务器无法连接到服务端,服务端处于正常开启状态。

          客户端报错信息如下:

        2024/03/27 14:19:40 [I] [root.go:220] start frpc service for config file [ssl.ini]2024/03/27 14:19:40 [W] [service.go:133] login to server failed: session shutdown2024/03/27 14:19:40 [I] [root.go:236] frpc service for config file [ssl.ini] stopped

        四、排查过程

        1、检查版本信息

            开始怀疑是frp的版本问题,于是客户端和服务端都换上了一致版本frp_0.51.3_windows_amd64,结果还是无法解决问题,继续尝试更换端口,问题依旧。

        2、开启TLS

        服务端客户端原来的[common]配置中加入tls_enable = true

        依然存在报错:

          2024/03/27 14:29:37 [I] [root.go:220] start frpc service for config file [frpc.ini]2024/03/27 14:29:37 [W] [service.go:133] login to server failed: read tcp 192.168.3.13:49199->x.4.89.x.111:7000: wsarecv: An existing connection was forcibly closed by the remote host.2024/03/27 14:29:37 [I] [root.go:236] frpc service for config file [frpc.ini] stopped

              tls_enable = true表示启用了传输层安全协议(Transport Layer Security,TLS)。TLS是一种用于保护网络通信安全的协议,它提供了加密、身份验证和数据完整性保护等功能。通过启用TLS,可以确保在网络中传输的数据被加密,并且通信双方的身份得到验证,从而增加通信的安全性。

          3、更换传输协议

              怀疑可能frp使用的tcp协议被拦截,此时尝试使用udp传输;frp支持使用kcp作为底层的通讯协议,而kcp默认就是基于udp协议。

           尝试方案:

            1. 服务端原来的[common]配置中加入kcp_bind_port = 7000,使其支持udp

            2. 客户端原来的[common]处加入protocol = kcp即可,注意端口一定要对上!

          依然提示失败,该方案不可行。

          五、小结

              该问题尝试了各种方法、未解决,未定位到原因,怀疑是联通云服务器做了限制。