Ubuntu20.04之VNC的安装与使用
- 安装图形桌面
- 选择安装gnome桌面
- 选择安装xface桌面
- VNC-Server
- 安装
- 配置
- 开机自启
- VNC Client
- root用户无法登入问题
- 临时方案
- 永久方案
安装图形桌面
Ubuntu20.04主流的图形桌面有gnome和xface两种,两种桌面的安装方式我都会写,但这里较推荐gnome桌面
选择安装gnome桌面
sudo apt update #更新软件源
sudo apt install ubuntu-gnome-desktop #安装gnome
sudo systemctl start gdm #刚安装Gnome,需要启动GDM服务以初识化桌面
选择安装xface桌面
sudo apt update #更新软件源
sudo apt install xfce4 xfce4-goodies #安装xface
这个选项选择是否启用显示管理器,选择第一个并Enter
显示管理器是一个程序,使您的 Linux 发行版拥有图形登录功能。它还负责在您使用用户名和密码登录后启动显示服务器和桌面环境
VNC-Server
安装
VNC分为Server(服务端,用于提供图像数据)和Client (客户端,用于接收图像数据),这里推荐使用TightVNC Server + RealVNC View的组合
sudo apt install tigervnc-standalone-server #在ubuntu上安装tigervnc-server
安装完tigervnc后需要启动一个vncserver来初识化密码
sudo vncserver #启动vnc-server
# 首次启动需要定义一个6-8位的密码,超8位密码会被自动截断
You will require a password to access your desktops.
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
#Tip: 如需修改密码,你可以通过下面的命令修改你的vncserver的密码
# sudo vncpasswd
设置完vncserver的密码后先关闭vncserver做进一步的配置,否则现在连接你的客户端上是一篇空白的
sudo vncserver -kill :*
配置
-
创建并添加xstartup文件到
/etc/vnc/xstartup
(这步一定要做)sudo mkdir /etc/vnc #创建VNC目录 sudo nano /etc/vnc/xstartup #创建并编辑xstartup文件
-
向
/etc/vnc/xstartup
文件中添加下面的内容#!/bin/sh test x"$SHELL" = x"" && SHELL=/bin/bash test x"$1" = x"" && set -- default unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS vncconfig -iconic & "$SHELL" -l << EOF export XDG_SESSION_TYPE=x11 export GNOME_SHELL_SESSION_MODE=ubuntu dbus-launch --exit-with-session gnome-session --session=ubuntu EOF vncserver -kill $DISPLAY
使用xface桌面的添加下面的内容
#!/bin/sh # Start up the standard system desktop unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS /usr/bin/startxfce4 [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources x-window-manager &
-
设置为可执行文件
sudo chmod +x /etc/vnc/xstartup
-
创建并添加xstartup文件到
~/.vnc/xstartup
(区别于上一步,这步也要做)sudo vim ~/.vnc/xstartup #创建并编辑xstartup文件
-
向
~/.vnc/xstartup
文件中添加下面的内容#!/bin/sh [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
-
设置为可执行文件
sudo chmod a+x ~/.vnc/xstartup
-
启动VCN-Server
sudo vncserver :1 -geometry 1920x1080 -depth 24 -localhost no #注:-localhost no参数一定要有,没有的话可能无法正常连接,其余参数就是分辨率之类的了,可自定 义参数,如果输出下面的类似内容则说明服务器端正常运行 # New 'bytexd:1 (edxd)' desktop at :1 on machine bytexd # Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/edxd/.vnc/passwd :1 to connect to the VNC server.
开机自启
为设置vnc开机自启,不用每次都需要输入指令开启,可以将vnc-server的开启指令添加到系统服务中
-
创建并添加到
/etc/systemd/system/vncserver@.service
文件中
vim /etc/systemd/system/vncserver@1.service
向文件里面添加以下内容[Unit] Description=Start TigerVNC server at startup After=syslog.target network.target [Service] Type=simple User=root PAMName=login PIDFile=/home/tom/.vnc/%H:%i.pid ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1 ExecStart=/usr/bin/vncserver -fg -depth 24 -geometry 1920x1080 -localhost no :%i ExecStop=/usr/bin/vncserver -kill :%i [Install] WantedBy=multi-user.target
-
开机自启vncserver
sudo systemctl daemon-reload #加载引导程序 sudo sudo systemctl enable vncserver@1.service # 设置开机自启 # 输出内容如下: # Created symlink /etc/systemd/system/multi-user.target.wants/vncserver@1.service → /etc/systemd/system/vncserver@.service.
-
启动服务
sudo sudo systemctl start vncserver@1.service
-
检查服务状态
sudo sudo systemctl status vncserver@1.service
VNC Client
推荐 vnc-view,自接下载安装即可
大部分的VNC-Client都是只需要Ubuntu的 IP + 端口 + 密码 即可
# 这里说明一下端口
端口号就是5900+服务器索引,
如 vncserver :1指令开启的是第一个服务器,因此第一个服务器的端口就是5901,
类推,vncserver :2的端口就是5902
root用户无法登入问题
Ubuntu安装图形化界面后使用root用户,输入正确密码也无法登录,但是可以通过ssh远程登录命令行界面,具体现象如下。
通过命令less /var/log/auth.log查看日志信息如下。
gdm-password]: pam_succeed_if(gdm-password:auth): requirement "user != root" not met by user "root"
临时方案
loginctl unlock-sessions ## 可以解锁所有被锁的会话
永久方案
- 使用命令
vi /etc/pam.d/gdm-password
修改gdm-password
文件。 修改位置如图示。
- 将配置项的user != root删除,修改后配置信息如下。
- 保存退出