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 你的密码
相关推荐
Yale曼陀罗41 分钟前
如何快速删除谷歌浏览器在mac启动台生成的网页图标
macos
明京1 小时前
常见文件系统格式有哪些
windows
TeleostNaCl1 小时前
一种使用 PowerToys 的键盘管理器工具重新映射按键实现在 Windows 上快捷输入字符的方式
windows·经验分享
尖椒土豆sss2 小时前
记一次macOs系统安装使用vpn过程
macos
春马与夏2 小时前
Windows桌面图标修复
windows
怀旧,11 小时前
【数据结构】5. 双向链表
数据结构·windows·链表
拄杖忙学轻声码11 小时前
windows电脑解决笔记本搜索不到wifi问题
windows·电脑
waterHBO12 小时前
Cursor 编辑器, 使用技巧,简单记录一下
windows·编辑器
无脑学c++12 小时前
在Ubuntu上使用 dd 工具制作U盘启动盘
linux·运维·ubuntu
南棱笑笑生12 小时前
20250611在全志H3平台的Nano Pi NEO CORE开发板上运行Ubuntu Core16.04时让4G模块EC200A-CN使用AT命令拨号上网
linux·数据库·ubuntu