windows上用vnc viewer 能连接mac,不能连ubuntu

如果 VNC Viewer 可以连接 macOS,但无法连接 Ubuntu,通常是由于 Ubuntu 上的 VNC 服务配置问题或网络限制导致的。以下是逐步排查和解决方案:


1. 确认 Ubuntu 上已安装并运行 VNC 服务

(1) 检查是否安装了 VNC 服务器

Ubuntu 常用的 VNC 服务器有:

  • TigerVNC(轻量级,推荐)

  • RealVNC(商业版)

  • x11vnc(临时共享)

安装 TigerVNC:

bash 复制代码
sudo apt update
sudo apt install tigervnc-standalone-server tigervnc-common

(2) 设置 VNC 密码

bash 复制代码
vncpasswd

(输入密码,会保存在 ~/.vnc/passwd

(3) 启动 VNC 服务器

bash 复制代码
vncserver :1 -geometry 1920x1080 -depth 24
  • :1 表示显示端口 5901:2 对应 5902,依此类推)。

  • -geometry 设置分辨率,-depth 设置颜色深度。

(4) 检查 VNC 是否运行

bash 复制代码
ss -tulnp | grep vnc

正常应显示:tcp LISTEN 0 5 0.0.0.0:5901 0.0.0.0:* users:(("Xvnc",pid=1234,fd=7))

如果没有,可能是服务未启动或端口被占用。


2. 检查防火墙是否放行 VNC 端口

(1) Ubuntu 防火墙(UFW)

bash 复制代码
sudo ufw status

如果防火墙开启,放行 VNC 端口(默认 5901):

bash 复制代码
sudo ufw allow 5901
sudo ufw reload

(2) 检查云服务器安全组(如果是云主机)

  • AWS/Azure/GCP 需在控制台放行 5901 端口(TCP)。

3. 确保 VNC 服务绑定到 0.0.0.0(允许远程连接)

默认情况下,VNC 可能只监听 127.0.0.1(仅本地访问),需修改配置:

复制代码
vim ~/.vnc/config

添加:

复制代码
localhost=no

然后重启 VNC:

复制代码
vncserver -kill :1
vncserver :1

4. 检查 VNC 客户端连接方式

(1) 正确连接格式

在 VNC Viewer 输入:<Ubuntu的IP>:1

:1 对应 5901:2 对应 5902,依此类推。

(2) 使用 SSH 隧道(更安全)

如果直接连接失败,可以尝试 SSH 端口转发:

复制代码
ssh -L 5901:localhost:5901 username@ubuntu-ip

然后在 VNC Viewer 连接 localhost:1


5. 常见错误及解决方案

错误现象 可能原因 解决方案
Connection refused 服务未运行/端口未开放 检查 vncserver 是否运行,防火墙是否放行
Authentication failed 密码错误 重新运行 vncpasswd 设置密码
Black screen 未正确启动桌面环境 确保 Ubuntu 安装了 GNOME/XFCE 等桌面
Cannot currently show the desktop 未配置桌面会话 修改 ~/.vnc/xstartup 文件

6. 配置桌面环境(解决黑屏问题)

如果连接后黑屏,可能是未正确启动桌面。编辑 ~/.vnc/xstartup

写入(以 GNOME 为例):

bash 复制代码
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec /usr/bin/gnome-session

然后赋予执行权限并重启 VNC:

bash 复制代码
chmod +x ~/.vnc/xstartup
vncserver -kill :1
vncserver :1

7. 测试 VNC 服务

在 Ubuntu 上运行:

复制代码
vncserver -list

应显示:

复制代码
TigerVNC server sessions:

X DISPLAY #	PROCESS ID
:1		1234

然后在 VNC Viewer 输入 <Ubuntu-IP>:1,输入密码连接。


总结

  1. 安装 TigerVNC 并设置密码。

  2. 放行防火墙5901 端口)。

  3. 确保 VNC 监听 0.0.0.0(允许远程连接)。

  4. 配置桌面环境(避免黑屏)。

  5. 使用 SSH 隧道(提升安全性)。

如果仍然无法连接,检查日志:

复制代码
cat ~/.vnc/*.log

或尝试其他 VNC 服务器(如 x11vnc):

复制代码
sudo apt install x11vnc
x11vnc -display :0 -forever -passwd 你的密码
相关推荐
zz9602261 小时前
Windows Server存储池,虚拟磁盘在系统启动后不自动连接需要手动连接
windows
风吹落叶花飘荡3 小时前
Ubuntu系统 系统盘和数据盘扩容具体操作
linux·运维·ubuntu
贾斯汀玛尔斯6 小时前
ubuntu/centos系统ping 不通域名的解决方案
linux·ubuntu·centos
吳所畏惧6 小时前
NVM踩坑实录:配置了npm的阿里云cdn之后,下载nodejs老版本(如:12.18.4)时,报404异常,下载失败的问题解决
前端·windows·阿里云·npm·node.js·batch命令
leese2336 小时前
FreeMarker模板引擎
windows
fhf7 小时前
2025年了你会卸载Macbook上的应用吗?
macos·shell
love530love7 小时前
命令行创建 UV 环境及本地化实战演示—— 基于《Python 多版本与开发环境治理架构设计》的最佳实践
开发语言·人工智能·windows·python·conda·uv
归辞...7 小时前
「iOS」——内存五大分区
macos·ios·cocoa
呉師傅7 小时前
佳能iR-ADV C5560复印机如何扫描文件到电脑
运维·网络·windows·计算机外设·电脑
程序视点7 小时前
【最新专业评测】PDF Reducer专业版:85%超高压缩率的PDF压缩神器|Windows最佳PDF压缩工具推荐
windows