之前在公司做过一次frp,当时做了两个rdp和一个ssh,但是很顺利,写了笔记记录下来就好了。
但是这次,重新在公司里面搞了一台服务器,重新做frp,突然发现按照之前的笔记上的配置来做,做不起来了。反复查看VPS的防火墙,还有系统和软路由的过滤规则,还是没有解决问题。
刚开始猜想是,公司封了端口,但是更换了好几次端口之后,发现还是不行。
然后,我在frpc 和 frps 分别抓包发现,TCP建立连接的时候有3个RST,仔细一看我的数据包被重置了好像,看样子公司根据TCP的流量特征判断我是frp的流量,做了重置,导致我frpc 连接 不上 frps。
ok。这样我来给数据加密,开启tls传输。
在客户端原来的[common]配置中加入tls_enable = true即可
尝试之后发现还不行。
既然TCP不行,我们就换UDP试试
frp支持使用kcp作为底层的通讯协议,而kcp默认就是基于udp协议,废话不多说,赶紧试一试!
步骤(假设kcp的端口为7000):
在服务端原来的[common]配置中加入kcp_bind_port = 7000,使其支持udp
在客户端原来的[common]处加入protocol = kcp即可,注意端口一定要对上!
完成。