1. 安装桌面环境
若安装的linux不具备桌面环境,需要安装桌面环境;否则,跳过这一步;
2. 安装VNCServer
sudo apt install tigervnc-standalone-server
3. 配置VNC访问
安装VNC服务器后,下一步是创建初始用户配置并设置密码。
使用vncpasswd命令设置用户密码,运行以下命令时请勿使用sudo:
vncpasswd
系统将提示您输入并确认密码,以及是否将其设置为只读密码。如果选择设置仅查看密码,则用户将无法使用鼠标和键盘与VNC实例进行交互:
密码文件存储在~/.vnc目录中,如果不存在则创建该目录。
如果需要将其他选项传递给VNC服务器,请创建一个名为config的文件,即~/.vnc/config,并在每行添加一个选项。这是一个例子:
geometry=1920x1080
dpi=96
现在,您可以使用vncserver命令启动VNC服务器:
vncserver
返回如下信息:
New 'hp:1 (wemine)' desktop at :1 on machine hp
Starting applications specified in /etc/X11/Xvnc-session
Log file is /home/wemine/.vnc/hp:1.log
Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/wemine/.vnc/passwd :1 to connect to the VNC server.
其中:hp:1 (wemine)表示hp是自己的主机名,1端口号(显示端口号),wemine表示用户名
在上面的输出中,请注意主机名后面的:1。这表示正在运行vnc服务器的显示端口号。在此示例中,服务器在TCP端口5901(5900+1)上运行。如果使用vncserver创建第二个实例,它将在下一个可用端口(即:2)上运行,这意味着服务器在端口5902(5900+2)上运行。
要记住的重要一点是,在使用VNC服务器时,:X是表示5900+X的显示端口
您可以通过输入以下命令获取所有当前正在运行的VNC会话的列表:
vncserver -list
TigerVNC server sessions:
X DISPLAY # RFB PORT # PROCESS ID
:1 5901 6726
:2 5902 6806
:3 5903 6832
在继续下一步之前,请使用带有-kill选项和服务器编号作为参数的vncserver命令停止VNC实例。在此示例中,服务器在端口5901(:1)上运行,因此我们将使用以下命令将其停止:
vncserver -kill :1
vncserver -kill :2
vncserver -kill :3
4. 设置为开机启动
让我们创建一个systemd单元文件,而不是手动启动VNC会话,以便您根据需要启动、停止和重新启动VNC服务。
打开您的文本编辑器,然后将以下配置复制并粘贴到其中。确保在第7行更改用户名以匹配您的用户名。
创建/etc/systemd/system/vncserver@:1.service文件,具体内容为:
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=simple
User=weroot
PAMName=login
PIDFile=/home/%u/.vnc/%H%i.pid
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver %i -geometry 1920x1080 -alwaysshared -fg -localhost no
ExecStop=/usr/bin/vncserver -kill %i
Restart=always
[Install]
WantedBy=multi-user.target
**其中需要注意的有**:
修改User=weroot为真实用户名;如果用户是ywnz,则需要把User=linuxize改成User=ywnz,请自行更改。然后保存并关闭文件。
-
ExecStart=/usr/bin/vncserver %i -geometry 1920x1080 -alwaysshared -fg -localhost no中-fg表示进程在前台运行并在VNC服务器的X会话终止后终止它,-localhost no表示所有客户端都可以连接。
-
Restart=always重启VNC Server。在客户端注销后,可以重新连接服务器。如果没有加这一条,客户端注销后,vncserver@:1.service会变成stop状态。
设置systemd进程
$ systemctl daemon-reload //重新加载systemd进程
$ systemctl start vncserver@1.service //然后启动VNC服务器服务
//要使VNC服务器服务能够在引导时启动,请使用以下命令:
$ systemctl enable vncserver@1.service
//要检查VNC服务状态,请使用以下命令:
$ systemctl status vncserver@1.service
5. 连接VNC Server
参考文章:1. https://www.ywnz.com/linuxyffq/8969.html
2. https://blog.csdn.net/tianxifeng/article/details/103488806