前提,自己是个不会编程的小白,靠群里问大佬+自己摸索完成了rustdesk的搭建
最开始是使用向日葵的时候,总是会卡顿,需要反复重新连接,即便黑白模式也还是卡顿比较多,又不想开会员,就尝试性的在论坛问了下有没有替代方案,memory_clear回了我rustdesk
然后开始找论坛文件研究
先是看了自建远程桌面访问服务(RustDesk) - 攻略分享 飞牛私有云论坛 fnOS
自己架设了基础服务,首次测试连接成功了,然后看到有个图形化管理界面,外面找了个帖子试着装了一下,界面没问题,但是发现总是连不上,慢慢就放下了
后来又看到RustDesk 完整部署教程:支持 Web 管理后台和网页客户端远程,保姆级教学来了! - 攻略分享 飞牛私有云论坛 fnOS
把原来分体的rustdesk容器删了,重新安装了文章里的试了下,还是之前的问题,通过反复研究,最终实现了流畅的远控,以下是我踩过的坑,供大家分享
1,域名解析的坑
我用的是Lucky,最开始发现域名解析越来越慢,打开飞牛网址需要好久,还在论坛上问过,大家说是Cloudflare不太稳定,后来反复研究观察发现,通过公网IP直连是正常的,最终定位到域名解析有问题上,然后再Cloudflare上翻了翻,发现A类域名对应多个IP地址,除了我的公网IP外,其他可能是我以前的IP,Lucky更新IP的时候没有做更新,而是进行了添加,删除其他IP后,访问飞牛网页速度正常,rustdesk也不会提示超时了,重新拨号以后,lucky还是做了IP添加,所以确定了坑就是lucky在更新Cloudflare的IP时候,不是做的更新,而是做的添加,导致域名解析到旧IP,从而影响网页访问速度,rustdesk访问超时
2,端口
rustdesk的ID服务器和中继服务器,填写域名或者IP以后,会自动添加端口,而lucky的反代只监控外部一个端口(一般都这么设置吧)从而导致rustdesk访问失败
如果要使用rustdesk,确保21116和21117端口(具体看自己的设置,我直接套徐大大的设置)可以正常打通到服务器,一般需要开端口映射,把两个端口直接映射到飞牛上,或者开DMZ(不建议,会完全暴露你的飞牛)
所以完整的路径是客户端通过IP或者域名,自动加上21116和21117的端口号,访问你的路由器,你的路由器通过端口映射把信息转给你的飞牛,你的飞牛外部端口再转给容器内
如果只按照徐大大的操作,做反代的话,是实现不了的,因为两个端口没有开放外网访问,徐大大自己也说开了DMZ以后才实现的,所以反代步骤对于ID服务器和中继服务器其实是无效的
我自己测试用域名+端口方式强行指定,期望通过反代转换到飞牛的端口上,是行不通的,总是连不上
如果有高手可以自己编译rustdesk的话,应该可以实现两个服务器任意指定端口,对我这种拿来主义的,我只能听劝用自动添加的端口
3,应用或者游戏黑屏/白屏
这个问题涉及到显卡渲染的问题,无头系统或者笔记本合盖情况下,因为系统没有识别到有连接的显示器,所以显卡不工作,一些软件必须要显卡渲染的,就无法正常在远程显示了,笔记本打开盖板,或者插入显示器,远程内立即正常显示
我最开始的解决办法是插HDMI诱骗器,这东西不贵并夕夕上两三块一个,跟着徐大大步骤研究的时候,我突然想到为啥非得插一个,不能有个软件虚拟一下吗?我就搜到一个叫Easy Virtual Display的软件,可以虚拟屏幕,经过测试,原本无法远程时候显示的游戏画面,可以正常显示了,有需要的可以试一下
PS:一个未验证的想法,徐大大帖子内挺大篇幅强调compose里端口的反代设置,我结合别的帖子的内容,考虑到在compose里其实不用填写反代的端口,直接127.0.0.1+端口号就可以了,因为是在同一个容器内,直接本地访问就行