一、基础环境
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.111
server_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 shutdown
2024/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协议。

尝试方案:
在服务端原来的
[common]
配置中加入kcp_bind_port = 7000
,使其支持udp在客户端原来的
[common]
处加入protocol = kcp
即可,注意端口一定要对上!

依然提示失败,该方案不可行。
五、小结
该问题尝试了各种方法、未解决,未定位到原因,怀疑是联通云服务器做了限制。
