一、Linux安装VNC服务
适用于CentOS7
#检查系统没有装GUI界面
rpm -qa | grep gnome
yum -y groupinstall "X Window System"
yum -y groupinstall "GNOME Desktop"
#安装VNC
yum install tigervnc tigervnc-server -y
检查开机运行级别
systemctl get-default #查询当前开机运行级别
systemctl set-default multi-user.target #表示切换到运行级别3,3为命令行模式
systemctl set-default graphical.target #表示切换到运行级别5,5为图形化GUI模式
设置密码
vncpasswd #输入两次
Would you like to enter a view-only password (y/n)? y #再输两次
启停服务,启停就使用就可以
vncserver :1
#1表示开启的是5901端口,1--5901,5901为客户端连接端口号,2--5902,以此类推,可同时开启多个端口
vncserver -list #可查看已开启的端口列表
netstat -anp | grep 5901 #查看5901进程
连接测试
关闭端口,关闭后会出现下图的链接失败
vncserver -kill :1 #表示关闭5901端口,但不影响除5901外的其他端口。
vncserver -kill :2 #表示关闭5902端口,但不影响除5902外的其他端口。
适用于CentOS6
网上的教程修改 vim /etc/sysconfig/vncservers 文件的方法,这个是CentOS6的方法,在CentOS7更改该配置文件已经没有意义。
vim /etc/sysconfig/vncservers
###填入以下内容###
# THIS FILE HAS BEEN REPLACED BY /lib/systemd/system/vncserver@.service
VNCSERVERS="2:root" #用户
VNCSERVERARGS[2]="-geomotry 1366x768" #分辨率
二、设置VNC服务端开机自启动
按照上面的方法确实可以做到远程连接,但如果每次开机都需要使用vncserver :1命令才能启动服务显然是不合理的,可以通过cron调度任务的方式设置开机自启动,但vnc服务还可以新建server服务文件通过systemctl命令实现开机自启动。
适用于CentOS7
复制vncserver@.service文件,注意将<USER>更改成真实用户名,我这里改成root,一个用户需要建一个service服务文件。
文件名形式固定必须是vncserver@:2.service这个形式,更改文件名中的数字,代表更改端口,例如vncserver@:2.service代表着开启该服务后启动5902端口,vncserver@:3.service代表5903端口,vncserver@:50.service代表5950端口以此类推。
cp /lib/systemd/system/vncserver@.service /lib/systemd/system/vncserver@:2.service
vim /lib/systemd/system/vncserver@:2.service
#找到其中的<USER> ,修改成自己的用户名,这里我改成root用户。
###例子###
[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 root %i
ExecStart=/sbin/runuser -l root -c " /usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target
systemctl start vncserver@:2.service
systemctl enable vncserver@:2.service
启动vncserver@:50.service
关闭自启动
systemctl stop vncserver@:2.service
systemctl disable vncserver@:2.service