安装VNC
安装一台不带桌面的Ubuntu20(在虚拟机上)
区分两个概念:
服务端(被控制的机器,一般是服务器)和客户端(用来控制别的机器的机器,一般是自己的电脑)
步骤主要分为:
- 在服务器上开启vncserver,并配置。
- 在客户端安装vncviewer,并配置。
- 先在客户端的终端用ssh -L ...连接服务器端的vncserver,再在vncviewer上连接。
1. 在服务器上开启vncserver,并配置:
1.1 更新软件:
sudo apt update
sudo apt upgrade
sudo apt install wget apt-transport-https gnupg2
1.2 安装一个轻量级的桌面(xfce:https://xfce.org/about)
sudo apt install xfce4 xfce4-goodies
1.3 安装vnc服务,Ubuntu存储库中有几种不同的VNC服务器,例如TightVNC ,TigerVNC 和x11vnc 。每个VNC服务器在速度和安全性方面都有各自的优缺点,这里安装的是TigerVNC。
sudo apt install tigervnc-standalone-server
1.4 运行vncserver命令设置 VNC 访问密码,创建初始配置文件,并启动 VNC 服务器实例
vncserver
设置密码后,您将收到设置仅查看密码的提示。这意味着任何使用仅查看密码访问 VNC 服务器的人都无法使用鼠标或键盘访问 VNC 桌面:
Would you like to enter a view-only password (y/n)? N
/usr/bin/xauth: file /home/idroot/.Xauthority does not exist
New 'idroot:1 (idroot)' desktop at :1 on machine idroot
Starting applications specified in /etc/X11/Xvnc-session
Log file is /home/idroot/.vnc/idroot:1.log
Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/idroot/.vnc/passwd :1 to connect to the VNC server.
1.5 配置 VNC 服务器
1.5.1 首先,使用以下命令停止在端口 5901 上运行的 VNC 服务器实例:
vncserver -kill :1 ##这一步不知道需不需要,如果1端口有用户在用,这样不是把那个账户切断了?
1.5.2 接下来,我们需要编辑xstartup文件(或者新建一个〜/.vnc/xstartup):
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak ###这一步可能会提示没有xstarup文件,似乎没关系?直接进行下一步操作就行。
vi ~/.vnc/xstartup
1.5.3 在下面添加以下行:
#!/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 &
1.5.4 保存并关闭文件,每当您启动或重新启动TigerVNC服务器时,以上命令都会自动执行。然后使该文件可执行:
chmod +x ~/.vnc/xstartup
1.5.5 接下来,重新启动 VNC 服务器:
vncserver -localhost no :1 ##同理,这一步不知道是否合适
##开启一个端口,比如第4个:
vncserver :4
###查看是否开启成功:
vncserver -list
2. 在自己的电脑上连接VNC
2.1 先ssh,在本地计算机上创建一个 SSH 连接,以安全地转发到 VNC 的 localhost 连接:
ssh -L 5904:localhost:5904 server_user_name@server_ip_address
2.2 在vnc-viewer上连接
新建连接,然后:
在VNC Server里输入localhost:5904
,name随便取。
平时的调试(关掉重开)
查看已开启的服务:
vncserver -list
终止一个服务(可以先把密码删掉:rm .vnc/passwd)
vncserver -kill :4
重新开启一个服务:
vncserver :4