You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

火山引擎 最新活动