免费的vps主机frp同时转发远程桌面的 TCP 和 UDP 端口手机怎么控制vps



笔记本放在家里,通过远程桌面连上去使用,不用每天都背着电脑跑来跑去了哈哈。但是使用过程中发现鼠标稍稍有一点不跟手,和服务器的延迟并不高,单向顶多十几毫秒,研究了下发现是因为单纯使用 TCP 的问题,所以就有了这篇文章。

为了保证安全,初始方案使用了 frp 的 stcp 隧道。需要在两台设备上都部署 frpc,然后和服务器上部署的 frps 通信。

这种情况下远程桌面的流量会通过本地的 frpc 加密后发送到服务器,服务器收到后将数据转发给被控端运行的 fpc,之后转发给本地的远程桌面端口。流程大概是这样的:

使用 stcp 隧道的方式不需要在服务器上另外开端口,可以很好的避免安全问题,并且我在服务器端配置了 token 参数来防止未授权的访问。主控端和被控端的配置文件中也添加了 sk 参数,来防止未经授权的访问。vps是服务器吗

被控端监听本地的 3389 端口,主控端通过被控端设置的名字来访问被控端的端口,借助服务器的帮助将主控端本地 7000 端口的数据转发到被控端本地的 3389 端口上来实现内网穿透。

由于 TCP 是一种可靠的传输协议,为了保证可靠性,在某个数据包由于某种原因延迟到达时,内核协议栈会将收到的数据包放在缓冲区中, 等待延迟的数据包到达后再组装起来发送给上层调用者。免费的vps主机这样会出现一个问题就是一个数据包的延迟到达会导致上层调用者延迟收到一批数据包,从而造成卡顿或者不跟手等问题。

解决这个问题的方法就是使用 UDP 来通信,手机怎么控制vps由于 UDP 是可以乱序到达的,并且一个两个数据包的延迟到达并不会影响其他数据包的正常解析,所以因为几个数据包延迟或者丢失而造成的画质问题几乎看不出来,手机怎么控制vps所以 UDP 非常适合远程桌面这种实时场景。

正因为如此,微信视频,免费的vps主机微信语音等等使用到了实时视频流或者实时音频流的场景底层都是使用了 UDP 来传输,很好的解决数据包延迟到达或者丢包导致使用体验下降的问题。

经过查询远程桌面是支持使用 UDP 的,所以问题就变成了如何转发远程桌面的 UDP 流量。

要转发远程桌面的 UDP 流量,首先要知道远程桌面是在何时通过什么端口如何使用 UDP 协议来通信的,这里使用抓包的方法来确认。

开启抓包神器 Wireshark,然后打开远程桌面按照正常的方式来连接(为了方便分析,这里没有使用 frp 转发数据,是通过内网直接连接到了远程桌面服务器,所以会看到数据被发送到了 3389 端口),之后断开连接,分析数据包。

第二个红色方框中为 TLS 握手包,其中最后一个数据包标红了,因为连接被 RST 了,具体为什么被 RST,猜测可能是我们在使用远程桌面时常见的证书错误(见下图)

上面的 TCP 连接被 RST 了,所以第三个红色方框中是重新进行 TCP 握手的数据包

因为在弹出证书不受信任时我们选择了是,所以第四个红色方框中是重新进行 TLS 握手的数据包

使用 TLS 隧道传输一部分数据之后,可以看到出现了 UDP 数据包,本地的远程桌面客户端首先尝试发送了一个 UDP 数据包从本地的 64792 端口发送到服务器的 3389 端口,见第一个红色方框

服务器和客户端进行了通讯后,vps连接确认了 UDP 协议是可以正常通信的,所以后面的通信全部使用 UDP 协议来进行。当然,后面的通信中还会有部分的 TLS 数据包(不重要就没有截图),猜测可能是进行一些心跳或者认证之类的通信,由于不清楚具体协议不具体研究

清楚了正常的远程桌面协议是如何使用 UDP 协议进行通信的流程之后,接下来抓包分析目前我使用 stcp 隧道时远程桌面的通信数据。

前边都是正常的 TCP 握手和 TLS 握手数据,就不截图了,主要看图中选中的这行 UDP 数据包,由本地的 57387 端口发送到服务器的 48698 端口,但是没有接收到服务器的回应,远程桌面客户端认为与服务器的 UDP 通信不成功,所以下面的通信仍然由 TLS 隧道来传送。

对比一下可以得知,正常的远程桌面通过 TCP 来传输握手,心跳,认证信息等数据,认证之后通过 UDP 来传输具体的画面数据。

而我只设置了内网穿透转发 TCP 的数据,导致 UDP 通信不成功, 所以只能使用 TCP 来传输所有的心跳,握手和画面数据。

了解了以上信息,解决方案就很明显了,添加一条内网穿透隧道,增加本地 UDP 端口的数据转发就可以了。

增加一条 sudp 隧道,转发本地 TCP 同端口的 UDP 数据到远程桌面服务器即可。

将远程桌面全屏,鼠标移动到最上方,会自动显示出远程桌面的连接栏,单击箭头所指向的位置即可。

本篇文章通过抓包的方式确定了远程桌面不跟手的问题所在,并且简单的增加了一条隧道就解决了远程桌面不能使用 UDP 传输数据的问题。由此可见,手机怎么控制vps使用 Wireshark 抓包分析在日常调试网络问题中,还是比较可靠和有用的。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

汉华云-亲测精品资源 – 免费模板主题源码-服务器测评-速淘金 VPS服务器测评 免费的vps主机frp同时转发远程桌面的 TCP 和 UDP 端口手机怎么控制vps https://www.hanhuayun.com.cn/62661.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务