温馨提示×

Ubuntu如何通过TigerVNC共享文件

小樊
51
2025-09-23 15:13:10
栏目: 智能运维

Ubuntu通过TigerVNC共享文件的步骤

1. 安装TigerVNC服务器

在Ubuntu终端中执行以下命令,更新软件包列表并安装TigerVNC服务器及依赖:

sudo apt update
sudo apt install tigervnc-standalone-server tigervnc-common

2. 配置TigerVNC服务器密码

运行vncpasswd命令设置VNC连接密码(用于客户端登录):

vncpasswd

按照提示输入并确认密码(密码长度需为6-8位)。

3. 启动TigerVNC服务器

指定显示编号(如:1对应端口5901)启动服务器,-localhost no允许远程连接:

vncserver :1 -localhost no -geometry 1920x1080

首次启动会生成配置文件~/.vnc/xstartup(用于自定义桌面环境)。

4. 配置桌面环境启动脚本

编辑~/.vnc/xstartup文件,确保包含以下内容(适配GNOME桌面环境,若使用其他环境需调整):

#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
vncconfig -iconic &  # 启用文件传输功能
gnome-panel &        # 启动面板
metacity &           # 启动窗口管理器
nautilus &           # 启动文件管理器(关键:支持文件共享)
dbus-launch --exit-with-session gnome-session &

保存后赋予执行权限:

chmod +x ~/.vnc/xstartup

5. 配置Samba实现跨设备共享(可选但推荐)

若需通过网络共享文件给非VNC客户端(如Windows电脑),需安装并配置Samba:

sudo apt install samba

编辑Samba配置文件/etc/samba/smb.conf,在末尾添加共享目录(以/home/user/shared为例):

[shared]
   path = /home/user/shared
   available = yes
   valid users = your_username  # 替换为你的Ubuntu用户名
   read only = no
   browsable = yes
   public = yes
   writable = yes

创建Samba用户并设置密码(需与Ubuntu登录密码不同):

sudo smbpasswd -a your_username

重启Samba服务使配置生效:

sudo systemctl restart smbd

6. 设置共享目录权限

确保共享目录可被访问,修改权限为777(或根据需求调整):

mkdir -p /home/user/shared  # 创建共享目录(若未创建)
chmod -R 777 /home/user/shared

7. 连接VNC服务器并传输文件

  • 使用VNC客户端连接:在另一台设备上安装VNC客户端(如RealVNC Viewer、TightVNC Viewer),输入Ubuntu服务器的IP地址和显示编号(如192.168.1.100:1),连接后输入之前设置的VNC密码。
  • 通过VNC客户端传输文件:多数VNC客户端(如RealVNC)支持拖放或内置文件传输功能,可直接将文件从本地拖到VNC会话窗口,或通过客户端的“文件传输”按钮操作。
  • 通过Samba传输文件:在Windows设备上打开“此电脑”,输入\\Ubuntu_IP\shared(如\\192.168.1.100\shared),使用Samba用户密码登录即可访问共享目录。

8. 可选:设置开机自启动

若需VNC服务器随系统启动,创建systemd服务文件:

sudo nano /etc/systemd/system/vncserver@:1.service

粘贴以下内容(替换your_username为你的用户名):

[Unit]
Description=Start TigerVNC server at startup
After=syslog.target network.target

[Service]
Type=forking
User=your_username
Group=your_username
WorkingDirectory=/home/your_username
ExecStartPre=/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1920x1080 :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

保存后启用并启动服务:

sudo systemctl daemon-reload
sudo systemctl enable vncserver@:1.service
sudo systemctl start vncserver@:1.service

注意事项

  • 确保Ubuntu防火墙允许VNC端口(5900+显示编号,如:1对应5901)和Samba端口(445/tcp)通过:
    sudo ufw allow 5901/tcp
    sudo ufw allow samba
    
  • 若使用NAT网络,需在路由器中设置端口转发,将公网端口映射到Ubuntu服务器的VNC端口。
  • 为提升安全性,建议使用SSH隧道加密VNC连接(通过ssh -L 5901:localhost:5901 user@ubuntu_ip命令)。

0