Lyndra's Blog

linux ubuntu搭建不同用户的VNC

2023-10-25
系统维护 ServerUbuntu
4分钟
630字
温馨提示:本文最后更新于 2025-03-11 ,部分信息可能因时间推移而不再适用,欢迎反馈。

linux ubuntu搭建不同用户的VNC

安装tigervnc

Terminal window
1
sudo apt install tigervnc-standalone-server

安装gnome桌面

Terminal window
1
sudo apt install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal ubuntu-desktop

  因为自带的桌面在后续登陆输入密码时有问题,没办法输入文字。因此使用此gnome桌面。安装后还需要配置启动脚本,使得启动后使用ubuntu的默认gnome桌面。

配置xstartup

  如果已经有默认的脚本,则将其备份,如果没有可以直接编辑

Terminal window
1
cp ~/.vnc/xstartup ~/.vnc/xstartup.bak
2
nano ~/.vnc/xstartup

  在用户home目录下的.vnc目录下创建xstartup,并添加如下内容

1
#!/bin/sh
2
export XKL_XMODMAP_DISABLE=1
3
export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME"
4
export XDG_MENU_PREFIX="gnome-flashback-"
5
6
# 服务器物理显示器会默认使用显示端口 5901,需要确保 VNC端口以及配置 不与现有的 GNOME 会话发生冲突。
7
unset SESSION_MANAGER
8
unset DBUS_SESSION_BUS_ADDRESS
9
10
gnome-session --session=gnome-flashback-metacity --disable-acceleration-check

  然后赋予执行权限

Terminal window
1
chmod 777 ~/.vnc/xstartup

测试

  使用下列命令将vnc服务运行在5902端口,不建议使用5901作为默认显示端口,因为物理显示器会默认使用5901。

Terminal window
1
vncserver -geometry 1920x1080 :2 -localhost no

  使用 vncserver -list​ 获取端口号:

default

vnc脚本

  将启动脚本写成sh文件,便于执行

1
#! /bin/bash
2
vncserver -geometry 1920x1080 :2 -localhost no # :1 reserved for local connection offline.

  添加权限

Terminal window
1
chmod 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支持,则需要完成本文中的 配置xstartupvnc脚本登陆shell自动启动vnc 等三个部分。

  ‍

本文标题:linux ubuntu搭建不同用户的VNC
文章作者:Lyndra
发布时间:2023-10-25
总访问量
总访客数人次
Copyright 2025
站点地图