在 Ubuntu 上使用 TigerVNC 实现远程磁盘访问
一、方案总览
- 在 Ubuntu 上安装并启动 TigerVNC,确保会话里包含 文件管理器(如 Nautilus),即可在远程桌面中像本地一样浏览、复制、移动、删除文件。
- 为提升安全性,建议使用 SSH 隧道 访问 VNC(不直接暴露 5901 端口),客户端通过本地端口转发连接。
- 若服务器启用了防火墙,放行相应端口(如 5901/tcp)或使用 SSH 隧道绕过防火墙。
二、快速配置步骤
- 安装桌面环境与 TigerVNC(以 Xfce 为例,轻量稳定;如使用 GNOME 亦可)
- sudo apt update
- sudo apt install xfce4 xfce4-goodies tigervnc-standalone-server tigervnc-common
- 设置 VNC 访问密码
- 配置 ~/.vnc/xstartup(确保包含文件管理器)
- 示例(Xfce):
- nano ~/.vnc/xstartup
- 内容:
- #!/bin/sh
- unset SESSION_MANAGER
- unset DBUS_SESSION_BUS_ADDRESS
- xrdb $HOME/.Xresources
- exec startxfce4
- chmod +x ~/.vnc/xstartup
- 启动 VNC 会话
- vncserver :1 -geometry 1920x1080
- 说明:显示号 :1 对应端口 5901;如需从外部直连,使用 -localhost no(见下一节安全建议)。
三、客户端连接与文件访问
- 方式 A(推荐)— SSH 隧道
- 本地终端执行:ssh -L 5901:127.0.0.1:5901 用户名@服务器IP
- 客户端连接:localhost:1(或 127.0.0.1:5901)
- 方式 B— 直连(需放行防火墙)
- 服务器放行端口:sudo ufw allow 5901/tcp
- 客户端连接:服务器IP:1(或 服务器IP:5901)
- 文件访问
- 连接后打开桌面文件管理器(如 Nautilus 或 Thunar),即可在远程会话中浏览、复制、粘贴、删除文件;也可在终端使用 scp/sftp 进行传输。
四、常见问题与排查
- 连接被拒绝或“connection refused”
- 检查端口监听:ss -lntp | grep 5901
- 若仅监听 127.0.0.1,说明仅本地可连;重启并加上 -localhost no:vncserver :1 -localhost no
- 灰屏/黑屏或无桌面
- 检查 ~/.vnc/xstartup 是否可执行且包含正确的桌面启动命令(如 exec startxfce4 或 gnome-session 等),必要时参考示例修正后重启会话。
- 防火墙阻断
- 使用 UFW 放行 5901/tcp,或全程采用 SSH 隧道 避免直连暴露端口。
五、进阶建议
- 开机自启 VNC(systemd 模板)
- 创建:sudo nano /etc/systemd/system/vncserver@.service
- 示例要点:
- ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i
- PIDFile=/home/用户名/.vnc/%H:%i.pid
- 启用:sudo systemctl daemon-reload && sudo systemctl enable --now vncserver@1.service
- 安全加固
- 优先使用 SSH 隧道 或启用 TLS 加密;设置强 VNC 密码;避免使用 root 运行 VNC 会话。