Remmina VNC连接不稳定问题及远程修复方案咨询
Remmina VNC连接不稳定问题及远程修复方案咨询
问题背景梳理
你遇到的情况我大概理清楚了:最近把家里的Ubuntu从20.04 LTS升级到22.04 LTS,还换了Netgear Nighthawk路由器,原本远程通过OpenVPN+Remmina连VNC是正常的,现在出现了一堆棘手的问题:
- PC锁屏后就无法通过VNC连接,哪怕手动解锁后也连不上,Remmina会提示「VNC server closed connection」
- 只要有一次连接失败(比如密码输错、配置有误),VNC服务器就彻底拒绝后续所有连接,必须重启PC或者在设置里禁用再重新启用共享才能恢复
- 现在你在外3周,远程通过VPN能正常ping通问题PC、访问NAS,但就是连不上这台PC的VNC,另一台PC却能正常连接
远程可尝试的修复步骤
既然你没法物理接触家里的PC,只能远程操作,假设你能通过SSH登录到那台问题PC(毕竟能ping通,大概率可以开启SSH),可以试试下面这些方法:
1. 重启VNC服务(无需重启整个PC)
Ubuntu 22.04里默认的桌面共享用的是vino-server,先停止再重启服务,比重启PC方便很多:
# 先停止vino服务 systemctl --user stop vino-server.service # 再重启服务 systemctl --user start vino-server.service # 顺便设置开机自启(避免下次重启后服务没起来) systemctl --user enable vino-server.service
如果重启后还是不行,试试重置vino的配置,可能是升级后配置出了冲突:
# 重置vino所有配置 gsettings reset-recursively org.gnome.Vino # 重新启用共享(远程只能用命令开启) gsettings set org.gnome.Vino enabled true gsettings set org.gnome.Vino prompt-enabled false # 关闭连接提示,避免锁屏后弹框无法确认 gsettings set org.gnome.Vino require-encryption false # 暂时关闭加密,排查兼容性问题 # 再次重启服务 systemctl --user restart vino-server.service
2. 检查端口与防火墙状态
先确认vino在监听正确的端口(默认是5900,多用户场景可能是5901、5902等):
# 查看VNC相关的监听端口 ss -tulpn | grep vino
如果看不到5900端口在监听,说明服务没正常启动;如果能看到,再检查本地防火墙是否拦截了这个端口:
# 查看UFW防火墙规则 ufw status # 如果没允许5900端口,添加规则 ufw allow 5900/tcp
另外,因为你已经通过VPN接入内网,路由器的端口转发应该不是问题,重点排查PC本地的防火墙设置。
3. 替换VNC服务器试试
vino在Ubuntu22.04里确实存在一些兼容性问题,你可以试试换个更稳定的VNC服务器,比如tigervnc-server,远程安装操作如下:
# 更新软件源并安装tigervnc sudo apt update && sudo apt install tigervnc-standalone-server tigervnc-xorg-extension # 设置VNC连接密码(记住这个密码,之后Remmina连接要用) vncpasswd # 启动tigervnc服务器,指定分辨率和端口(:1对应端口5901) vncserver :1 -geometry 1920x1080 -depth 24
之后用Remmina连接时,地址填问题PC内网IP:1(比如192.168.1.100:1),输入刚才设置的密码即可。如果这个能正常连接,说明是vino的问题,之后可以把tigervnc设置成开机自启。
4. 调整锁屏相关配置
Ubuntu22.04的锁屏机制可能会断开VNC会话,试试关闭自动锁屏和锁屏功能:
# 关闭自动锁屏(空闲时间设为0) gsettings set org.gnome.desktop.session idle-delay 0 # 关闭锁屏功能 gsettings set org.gnome.desktop.screensaver lock-enabled false # 关闭VNC关联的锁屏设置 gsettings set org.gnome.Vino lock-screen-enabled false
这样即使PC长时间没操作,也不会因为锁屏导致VNC连接中断。
额外排查点
- 确认VPN连接稳定性:可以多ping几次问题PC,看看有没有丢包:
ping -c 10 问题PC内网IP - 检查Remmina客户端配置:把加密方式改成「VNC Password」,不要选「TLS」或其他加密方式,有些服务器不兼容
- 查看系统日志找错误:实时查看vino服务的日志,然后尝试连接,看有没有具体报错:
journalctl --user -u vino-server.service -f
备注:内容来源于stack exchange,提问作者Hayduke




