Ubuntu通过TigerVNC共享文件的步骤
在Ubuntu终端中执行以下命令,更新软件包列表并安装TigerVNC服务器及依赖:
sudo apt update
sudo apt install tigervnc-standalone-server tigervnc-common
运行vncpasswd命令设置VNC连接密码(用于客户端登录):
vncpasswd
按照提示输入并确认密码(密码长度需为6-8位)。
指定显示编号(如:1对应端口5901)启动服务器,-localhost no允许远程连接:
vncserver :1 -localhost no -geometry 1920x1080
首次启动会生成配置文件~/.vnc/xstartup(用于自定义桌面环境)。
编辑~/.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
若需通过网络共享文件给非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
确保共享目录可被访问,修改权限为777(或根据需求调整):
mkdir -p /home/user/shared # 创建共享目录(若未创建)
chmod -R 777 /home/user/shared
192.168.1.100:1),连接后输入之前设置的VNC密码。\\Ubuntu_IP\shared(如\\192.168.1.100\shared),使用Samba用户密码登录即可访问共享目录。若需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
5900+显示编号,如:1对应5901)和Samba端口(445/tcp)通过:sudo ufw allow 5901/tcp
sudo ufw allow samba
ssh -L 5901:localhost:5901 user@ubuntu_ip命令)。