CentOS7.x安装VNC
VNC需要系统安装的有桌⾯,如果是⽣产环境服务器,安装时使⽤的最⼩化安装,那么进⾏下⾯操作安装GNOME 桌⾯。
# 列出的组列表⾥有GNOME Desktop。
yum grouplist
#安装 GNOME 桌⾯
yum groupinstall -y "GNOME Desktop"
# 安装完成后,修改默认启动⽅式为图形化界⾯
systemctl set-default graphical.target  //设置成图形模式
# 如果要换回来
systemctl set-default multi-user.target  //设置成命令模式
#然后重启系统即可
#或者startx开启图形界⾯。第⼀次启动可能时间会长⼀点,耐⼼等待即可。
第⼀步:安装VNC服务软件,使⽤root⽤户执⾏以下命令(以下操作没有特别说明均在root⽤户):
yum -y install gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts
yum -y install tigervnc-server -y
安装后可以使⽤如下命令来验证是否安装成功:
rpm -qa|grep tigervnc-server
第⼆步:复制vnc的启动操作脚本, vncserver@:1.service中的:1表⽰"桌⾯号",启动的端⼝号就是5900+桌⾯号,即是5901,如果再有⼀个就是2啦,端⼝号加1就是5902,以此类推:
如果开启⼀个桌⾯,那就是vncserver@:1.service,使⽤的端⼝号是5900+1=5901,若是开启第⼆个桌⾯,那就是vncserver@:2.service,使⽤的端⼝号是5900+1=5902
# 复制⼀个服务设置的模板
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
第三步:编辑/etc/systemd/system/vncserver@:1.service
vim /etc/systemd/system/vncserver@:1.service
# 到其中的<USER> ,修改成⾃⼰的⽤户名,如果是root⽤户登录桌⾯就使⽤root⽤户,如果使⽤普通⽤户登录桌⾯使⽤普通⽤户 (这⾥的⽤户是系统中事先存在的⽤户)
# 修改此服务配置
# 以下为root⽤户的配置,每⼀个⽤户,都需要单独设置⼀个监听服务。且配置不同
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target在linux下安装vim的命令
[Service]
Type=simple
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver_wrapper root %i
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target
----------------------------------------------------------------------------------------------------------
# 对于普通⽤户,加⼊⽤户名为:amos
# 下⾯举例进⾏设置:⾸先⼀样复制⼀个server配置。改名为vncserver@:2.service
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:2.service
# 然后进⾏修改
vim /etc/systemd/system/vncserver@:2.service
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=simple
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver_wrapper amos %i
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target
修改完毕后保存退出vim。
第四步:设置vnc密码,输⼊两次密码,输⼊完成后会提⽰是否设置view-only password(“View-only password”密码,只允许查看,⽆控制权限。)这个可设可不设:
设置vnc密码,vnc的密码跟系统的⽤户密码不⼀样,是使⽤vnc viewer登陆时需要使⽤的密码。上述配置⽂件⽤的是哪个⽤户就需要在哪个⽤户下执⾏这个设置密码的操作
若是配置设置的是root⽤户,那就在root⽤户下设置这个密码,若是普通⽤户amos,那就先切换到amos⽤户下,然后再设置这个密码
[root@localhost ~]# vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used
# 这⾥不添加只读账号密码
# 每个不⽤的系统⽤户,设置密码时,需要切换到该⽤户下,执⾏此命令
# 如:su amos  切换到amos⽤户再执⾏上vncpasswd设置密码
第五步:启动服务:
systemctl daemon-reload
systemctl start vncserver@:1.service
systemctl enable vncserver@:1.service
第六步:查看端⼝是否监听:
netstat -lnpt|grep Xvnc
第七步:开放防⽕墙的5901端⼝:
# 根据监听的端⼝,进⾏端⼝开放,每个⽤户会对应⼀个端⼝,第⼀个⽤户默认为5901端⼝。我这⾥是root⽤户
firewall-cmd --zone=public --add-port=5901/tcp --permanent
firewall-cmd --reload
# 如果防⽕墙没有启动需要先启动防⽕墙。
# 或者直接停⽌防⽕墙:systemctl stop firewalld.service && systemctl disable firewalld.service
第⼋步:关闭SELinux,编辑/etc/selinux/config⽂件:
vim /etc/selinux/config
将selinux设置为disabled
到这⾥vnc服务已经安装完毕,下⾯就可使⽤vnc客户端来连接。
去vnc官⽹下载vnc viewer,⽤于连接vnc server ,本⾝是开源的,放⼼使⽤。
官⽅下载地址:
根据⾃⼰的电脑的操作系统选择进⾏下载,我这⾥是windows,所以选择windwos 64位版。下载后安装使⽤。第九步:在vnc客户端(vnc viewer)输⼊服务器IP:桌⾯号(如110.16.16.2:5901),输⼊后回车:
第⼗步:输⼊IP后会弹出确认,点击contiue即可:
第⼗⼀步:输⼊vnc密码:
第⼗⼆步:登录成功,输⼊远程机器密码(登录成功后需要输⼊远程机器的⽤户的密码,如果没有密码就可以直接进⼊系统):
第⼗三步:成功进⼊远程桌⾯:
⾄此整个CentOS7.x 的VNC服务安装完毕.
⼩贴⼠:vnc服务只能在局域⽹使⽤,如果在外⽹,则需要有公⽹IP地址,VNC不具备内⽹穿透功能。
启动错误
[root@localhost ~]# systemctl status vncserver@:1.service
● vncserver@:1.service - Remote desktop service (VNC)
Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since 四 2021-11-11 14:06:30 CST; 6s ago
Process: 3828 ExecStart=/usr/bin/vncserver_wrapper root %i (code=exited, status=2)
Process: 3822 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
Main PID: 3828 (code=exited, status=2)
11⽉ 11 14:06:29 localhost.localdomain systemd[1]: Starting Remote desktop service (VNC)...
11⽉ 11 14:06:29 localhost.localdomain systemd[1]: Started Remote desktop service (VNC).
11⽉ 11 14:06:30 localhost.localdomain vncserver_wrapper[3828]: Warning: localhost.localdomain:1 is taken because of /tmp/....x/X1
11⽉ 11 14:06:30 localhost.localdomain vncserver_wrapper[3828]: Remove this file if there is no X server localhost.localdomain:1
11⽉ 11 14:06:30 localhost.localdomain vncserver_wrapper[3828]: A VNC server is already running as :1
11⽉ 11 14:06:30 localhost.localdomain vncserver_wrapper[3828]: FATAL: 'runuser -l root' failed!
11⽉ 11 14:06:30 localhost.localdomain systemd[1]: vncserver@:1.service: main process exited, code=exited, status=UMENT 11⽉ 11 14:06:30 localhost.localdomain systemd[1]: Unit vncserver@:1.service entered failed state.
11⽉ 11 14:06:30 localhost.localdomain systemd[1]: vncserver@:1.service failed.
Hint: Some lines were ellipsized, use -l to show in full.
解决办法
# cd /tmp/.X11-unix/
删除⾥⾯的⽂件
[root@localhost tmp]# cd .X11-unix
[root@localhost .X11-unix]# ll
总⽤量 0
srwxrwxrwx 1 root root 0 11⽉ 11 13:44 X0
srwxrwxrwx 1 root root 0 11⽉ 11 13:12 X1
[root@localhost .X11-unix]# rm -rf X0
[root@localhost .X11-unix]# rm -rf X1
[root@localhost .X11-unix]# systemctl start vncserver@:1.service
[root@localhost .X11-unix]# systemctl status vncserver@:1.service
● vncserver@:1.service - Remote desktop service (VNC)
Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled; vendor preset: disabled)
Active: active (running) since 四 2021-11-11 14:07:12 CST; 4s ago
Process: 3905 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
Main PID: 3911 (vncserver_wrapp)
CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service
├─3911 /bin/sh /usr/bin/vncserver_wrapper root :1
└─4113 sleep 0.1
11⽉ 11 14:07:12 localhost.localdomain systemd[1]: Starting Remote desktop service (VNC)...
11⽉ 11 14:07:12 localhost.localdomain systemd[1]: Started Remote desktop service (VNC).
11⽉ 11 14:07:15 localhost.localdomain vncserver_wrapper[3911]: New 'localhost.localdomain:1 (root)' desktop is in:1
11⽉ 11 14:07:15 localhost.localdomain vncserver_wrapper[3911]: Starting applications specified in /root/.vnc/xstartup
11⽉ 11 14:07:15 localhost.localdomain vncserver_wrapper[3911]: Log file is /root/.vnc/localhost.localdomain:1.log
Hint: Some lines were ellipsized, use -l to show in full.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。