ubuntu配置多用户vnc
时间: 2025-05-05 12:24:24 浏览: 28
### 配置多用户VNC访问
为了实现多个用户能够通过VNC安全地连接到Ubuntu服务器并各自拥有独立的工作空间,需遵循一系列特定设置。这不仅涉及安装必要的软件包,还包括配置防火墙以及创建针对不同用户的VNC服务实例。
#### 安装图形界面环境与VNC Server
由于默认情况下Ubuntu服务器版本不提供图形化桌面环境[^2],因此首先应安装适合的桌面环境(如Xfce),之后再部署合适的VNC服务器解决方案,例如TightVNC或RealVNC。对于每种类型的VNC服务器而言,在官方文档中均能找到详细的安装指南[^1]。
```bash
sudo apt update && sudo apt upgrade -y
sudo apt install xfce4 xfce4-goodies tightvncserver -y
```
#### 创建单独的服务文件用于各用户
为了让每位用户都能启动自己的VNC会话而不互相干扰,建议为每个账户分别建立Systemd服务单元文件。这样做的好处是可以轻松管理各个用户的VNC进程,并确保即使其中一个出现问题也不会影响其他人的正常使用。
假设要为名为`user1`和`user2`两位用户设立各自的VNC服务,则需要执行如下命令来生成对应的服务定义:
```bash
for user in user1 user2; do \
echo "[Unit]" | sudo tee /etc/systemd/system/vnc@$user.service > /dev/null;\
echo "Description=Start TightVNC server at startup" | sudo tee --append /etc/systemd/system/vnc@$user.service > /dev/null;\
echo "After=syslog.target network.target" | sudo tee --append /etc/systemd/system/vnc@$user.service > /dev/null;\
echo "" | sudo tee --append /etc/systemd/system/vnc@$user.service > /dev/null;\
echo "[Service]" | sudo tee --append /etc/systemd/system/vnc@$user.service > /dev/null;\
echo "Type=forking" | sudo tee --append /etc/systemd/system/vnc@$user.service > /dev/null;\
echo "# Clean any existing files in /tmp/.X11-unix environment" | sudo tee --append /etc/systemd/system/vnc@$user.service > /dev/null;\
echo "ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1" | sudo tee --append /etc/systemd/system/vnc@$user.service > /dev/null;\
echo "ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost no -fg %i" | sudo tee --append /etc/systemd/system/vnc@$user.service > /dev/null;\
echo "ExecStop=/usr/bin/vncserver -kill :%i" | sudo tee --append /etc/systemd/system/vnc@$user.service > /dev/null;\
echo "" | sudo tee --append /etc/systemd/system/vnc@$user.service > /dev/null;\
echo "[Install]" | sudo tee --append /etc/systemd/system/vnc@$user.service > /dev/null;\
echo "WantedBy=multi-user.target" | sudo tee --append /etc/systemd/system/vnc@$user.service > /dev/null;\
done;
```
上述脚本中的`-localhost no`参数允许来自网络外部的客户端尝试连接至该VNC端口;而`-geometry 1280x800`则指定了虚拟屏幕分辨率大小。可以根据实际需求调整这些选项。
#### 设置防火墙规则
考虑到安全性因素,应当适当开放防火墙以便让合法的VNC流量顺利进出系统。通常来说,默认使用的5900系列端口号会被分配给不同的显示编号,比如第一个显示器使用的是5901/tcp,第二个则是5902/tcp以此类推。可以通过UFW(Uncomplicated Firewall)工具来进行简单的入站策略设定[^4]。
```bash
sudo ufw allow 5901:5903/tcp comment 'Allow VNC connections'
```
此指令表示放行TCP协议下范围内的三个连续端口(即支持最多三位数目的并发VNC会话),同时附加注释说明用途方便日后维护查阅。
完成以上步骤后重启计算机使更改生效,并验证新创建的服务能否正常运作即可。
阅读全文
相关推荐


















