Ubuntu VNC如何连接其他电脑
导读:Ubuntu 使用 VNC 连接其他电脑 一、准备与端口 在目标电脑(被控端)安装并启动 VNC 服务,例如 TightVNC 或 TigerVNC,并设置访问密码。首次启动如执行 vncserver,会创建会话并提示设置密码。 VNC...
Ubuntu 使用 VNC 连接其他电脑
一、准备与端口
- 在目标电脑(被控端)安装并启动 VNC 服务,例如 TightVNC 或 TigerVNC,并设置访问密码。首次启动如执行 vncserver,会创建会话并提示设置密码。
- VNC 的显示编号与端口关系为:显示号 :1 对应端口 5901,显示号 :2 对应 5902,以此类推(计算公式:端口 = 5900 + 显示号)。
- 若使用桌面环境,建议安装轻量的 Xfce(便于在无头服务器上远程使用):sudo apt install xfce4 xfce4-goodies。
- 以上准备完成后,目标电脑会输出类似 “New ‘X’ desktop is …:1” 的提示,表示已在 5901 端口监听。
二、局域网连接步骤
- 在控制端(你的 Ubuntu)安装 VNC 客户端,例如 Remmina、Vinagre、RealVNC Viewer 或 TigerVNC Viewer。
- 确认目标电脑的局域网 IP(如 192.168.1.50),并确保控制端能 ping 通该 IP。
- 在客户端新建连接,协议选择 VNC,地址填写 目标IP:5901(或简写为 目标IP:1,客户端会自动补全为 5901)。
- 首次连接会弹出身份验证,输入目标电脑上设置的 VNC 密码 即可进入远程桌面。
- 若连接失败,优先检查目标电脑的防火墙是否放行 5901/tcp(见下一节)。
三、公网连接与端口转发
- 方案 A(推荐)—— SSH 隧道加密:在控制端执行(Linux/macOS)
ssh -L 5901:127.0.0.1:5901 -N -f -l 用户名 目标公网IP
然后在 VNC 客户端连接 localhost:5901。隧道会把本地 5901 转发到目标机器的 5901,数据全程加密,无需在公网暴露 VNC 端口。 - 方案 B(直接暴露)—— 路由器端口转发:在路由器上将外部端口(如 5901)映射到目标电脑的 内网IP:5901。控制端使用 公网IP:5901 连接。此方式需谨慎,建议配合强密码或改为方案 A。
四、防火墙与服务管理
- 防火墙放行(UFW 示例):sudo ufw allow 5901/tcp;如使用 firewalld,可执行 firewall-cmd --add-port=5901/tcp --permanent & & firewall-cmd --reload。
- 目标电脑为 systemd 系统时,可创建服务单元 /etc/systemd/system/vncserver@.service,将显示号作为参数(如 :1),便于开机自启与统一管理:
- 启用:sudo systemctl enable --now vncserver@1.service
- 停止/重启:sudo systemctl stop/restart vncserver@1.service
- 常用运维命令:
- 查看/结束会话:vncserver -list;vncserver -kill :1
- 修改分辨率等启动参数:vncserver -geometry 1280x800 -depth 24 :1
- 客户端常见选择:Remmina(Linux 桌面)、RealVNC Viewer、TightVNC Viewer、Vinagre。
五、常见问题与排查
- 连接被拒绝或超时:确认目标电脑 VNC 服务已启动(如 vncserver :1 在运行)、监听 5901、以及防火墙/路由器已放行;必要时用 ssh 隧道验证是否为网络/策略问题。
- 黑屏或桌面未加载:检查 ~/.vnc/xstartup 是否正确启动桌面(例如 exec startxfce4 & ),并确保该文件具有可执行权限;修改后需 kill 并重启 VNC 会话。
- 仅查看不允许控制:部分 VNC 服务支持设置只读密码,若对方只给了只读密码,你将无法控制鼠标键盘。
- 多用户同时连接:如需多人共享同一会话,启动 VNC 时可加参数 -alwaysshared(示例:vncserver -alwaysshared :1)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu VNC如何连接其他电脑
本文地址: https://pptw.com/jishu/787016.html
