You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派4B Ubuntu Buster环境下TightVNC Server与SSH隧道配置故障及疑问求助

树莓派4B Ubuntu Buster环境下TightVNC Server与SSH隧道配置故障及疑问求助

你好,针对你遇到的这一系列问题,我来一步步帮你分析和解决:

关于5901端口被占用的问题

你碰到的bind [127.0.0.1]:5901: Address already in use错误,是因为5901端口已经被其他进程占用了——大概率是之前启动的TightVNC实例没正常退出,或是有其他服务误占用了这个端口。你用lsof -ti:5901查到的5161和5535,就是占用该端口的进程ID。

不过你直接kill进程后出现SSH连接拒绝,大概率是不小心误杀了和SSH服务相关的进程,或是kill操作导致系统服务异常了。

解决SSH连接拒绝的问题

首先明确一点:树莓派的SSH服务必须处于运行状态,才能通过SSH远程连接它,不管是建立VNC隧道还是直接远程管理。现在连接被拒绝,你可以按以下方式排查:

  • 如果能给树莓派接上显示器和键鼠,先本地检查SSH服务状态:
    运行命令:sudo systemctl status sshd,看看服务是不是已经停止了。如果显示inactive,就启动它:sudo systemctl start sshd,顺便设置开机自启避免下次出问题:sudo systemctl enable sshd
  • 如果没法接显示器,那只能物理重启树莓派,重启后SSH服务会自动恢复(默认Ubuntu Buster是开启SSH自启的,除非你之前改过),之后再重新配置VNC。

重新配置VNC与SSH隧道的正确步骤

等SSH恢复正常后,咱们重新梳理VNC和隧道的配置:

  1. 先清理残留的VNC会话:运行vncserver -list查看当前运行的VNC会话,如果有1号会话(对应5901端口),就用vncserver -kill :1关闭它
  2. 启动一个干净的VNC会话:vncserver :1 -geometry 1920x1080(分辨率可以根据你的需求调整)
  3. 建立SSH隧道时,如果本地电脑的5901端口也被占用(比如本地装了VNC客户端),可以换一个本地端口避免冲突,比如:
    ssh -L 5902:127.0.0.1:5901 pi@192.168.0.149
    之后你在本地VNC客户端输入127.0.0.1:5902就能连接树莓派的桌面了

解答你的疑问

是的,要通过SSH建立VNC隧道,树莓派的SSH服务必须处于运行状态。因为SSH隧道是依托SSH连接创建的,没有正常运行的SSH服务,你连SSH连接都建立不了,更别说搭建隧道了。而且如果后续SSH连接断开,隧道也会失效,需要重新通过SSH连接来重建。

备注:内容来源于stack exchange,提问作者pi4desktop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 15:32:57