背景
我的电脑开启了远程桌面,使用frp,并通过一台服务器做内网穿透。但是我没有直接把3389端口通过服务器暴露在公网,而是在每次连接时,需要通过SSH连接到服务器,将服务器上通过frp穿透上去的RDP端口,映射到当前机器上。然后当前机器直接通过mstsc连接到localhost:[端口映射的端口]
即可连接。通过这种方式保证了安全性,即必须有条件SSH到我的服务器才能连接到我的电脑。
以上方式如果是用电脑来连接,一直都没有什么问题。我在电脑上用的是MyEnTunnel来在后台自动建立SSH端口映射隧道,在我的这篇文章中有一些描述。
在手机上其实可以用类似方式+软件实现。我使用的是Termux通过执行ssh -L
命令连接到服务器进行端口映射,然后使用RD Client
(当前最新版已经改名为Windows APP
)进行RDP连接。
问题
以前我用这种方式一直没什么问题,但是后来突然发现基本连不上去,只有一次偶然连上去了,但连上去也经常断。
解法
一个偶然的机会发现,进程刚从Termux切换到RDP的时候,有一定机会能直接连上。突然想到会不会是Termux在后台的话,SSH连接就会断。于是尝试了一下,确实刚切换进程到RDP立刻进行连接,有很大概率能连上。
想到小米手机针对进程有个设置是省电策略,把省电策略改成无限制之后,就没问题了。
Comments
注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。