linux ubuntu搭建不同用户的VNC
安装tigervnc
1sudo apt install tigervnc-standalone-server
安装gnome桌面
1sudo apt install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal ubuntu-desktop
因为自带的桌面在后续登陆输入密码时有问题,没办法输入文字。因此使用此gnome桌面。安装后还需要配置启动脚本,使得启动后使用ubuntu的默认gnome桌面。
配置xstartup
如果已经有默认的脚本,则将其备份,如果没有可以直接编辑
1cp ~/.vnc/xstartup ~/.vnc/xstartup.bak2nano ~/.vnc/xstartup
在用户home目录下的.vnc目录下创建xstartup,并添加如下内容
1#!/bin/sh2export XKL_XMODMAP_DISABLE=13export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME"4export XDG_MENU_PREFIX="gnome-flashback-"5
6# 服务器物理显示器会默认使用显示端口 5901,需要确保 VNC端口以及配置 不与现有的 GNOME 会话发生冲突。7unset SESSION_MANAGER8unset DBUS_SESSION_BUS_ADDRESS9
10gnome-session --session=gnome-flashback-metacity --disable-acceleration-check
然后赋予执行权限
1chmod 777 ~/.vnc/xstartup
测试
使用下列命令将vnc服务运行在5902端口,不建议使用5901作为默认显示端口,因为物理显示器会默认使用5901。
1vncserver -geometry 1920x1080 :2 -localhost no
使用 vncserver -list
获取端口号:
vnc脚本
将启动脚本写成sh文件,便于执行
1#! /bin/bash2vncserver -geometry 1920x1080 :2 -localhost no # :1 reserved for local connection offline.
添加权限
1chmod 777 vnc_run.sh
:2表示使用的端口为5902,如果不指定,会自动分配,这样的话,就需要先shell登陆,查看端口号,然后再登陆vnc。
打开其他图形应用没有反应
如果可以右键打开终端,但是打开文件夹之类的应用没有反应。就在终端中输入:xhost +
。(仅仅在图形界面下有效,shell中无效)
登陆shell自动启动vnc
为了能够让每个用户都使用vnc,需要让每个用户登录时自启动vnc,在用户目录下的.profile
文件中添加运行vnc的脚本。当用户登录shell时,就会运行一次vnc启动脚本。(这样就需要固定显示端口,否则将建立多个vnc端口)
例如,在 ~/.profile
中的末尾添加一行:/home/user/vnc_run.sh
~/.bash_profile
或 ~/.profile
:每个用户都可使用该文件,输入专用于当前用户使用的shell信息。当用户登录时,该文件仅仅执行一次!默认情况下,设一些环境变量,执行用户的.bashrc文件。
为新用户添加vnc
若为一个新用户添加vnc支持,则需要完成本文中的 配置xstartup、vnc脚本、登陆shell自动启动vnc 等三个部分。