Centos7下:
1.yum install tigervnc tigervnc-server #安装vnc服务端软件;
2.配置:
- centos7的配置文件模板在/lib/systemd/system/目录下,需要将其拷贝至/etc/systemd/system目录下,并重新命名:
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
注:VNC 服务本身使用的是5900端口。鉴于有不同的用户使用 VNC ,每个人的连接都会获得不同的端口。配置文件名里面的数字告诉 VNC 服务器把服务运行在5900的子端口上。第一个 VNC 会话服务会运行在5901(5900 + 1)端口上,之后的依次增加,运行在5900 + x 号端口上。其中 x 是指之后用户的配置文件名 vncserver@:x.service
里面的 x 。x参数将传递给配置文件中的%i。以下配置均以5901为例。
- 编辑配置文件,将其中的<USER>替换为要允许登录的用户名,主要编辑配置文件中的如下几行:
原内容:
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i"
PIDFile=/home/<USER>/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
编辑后:
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l username -c "/usr/bin/vncserver %i"
PIDFile=/home/username/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
注意:如果用户名是root,则PIDFile这行的路径应该为PIDFile=/root/.vnc/%H%i.pid。
3.配置用户登录密码并启动服务:
- 配置用户登录密码
vncpasswd (直接回车,直接回车表示配置当前用户的远程登录密码)
- 启动vnc(有两种方式):
第一种:服务方式启动
systemctl daemon-reload #重新加载进程;
vncserver #执行vncserver生成root用户远程配置文件,如果是其他用户请切换至其他用户下执行;
systemctl start vncserver@:1.service #启动服务;
systemctl enable vncserver@:1.service #设置开机自启动;
第二种:以vncserver命令方式启动
vncserver
vncserver :1 #启动:1服务进程;
注:以这种方式启动的话,每次系统重启都需要手动启动。
- 配置用户登录密码:切换到用户,并执行vncpasswd,设置密码。
- 查看服务/进程是否启动,执行ps -ef|grep 'vnc'或者ps -ef|grep 5901,如果能查看到相应进程说明该用户的vnc远程已开启。
4.防火墙配置:
如果防火墙开启,需要将vnc端口放行,第一个会话是5901,依次增加。
firewall-cmd --zone=public --add-port=5901/tcp --permanent ---放行5901端口;
firewall-cmd --reload ---重新加载防火墙配置;
firewall-cmd --list-all ---查看防火墙配置;
5.vnc远程访问:
前面工作一切顺利之后,就可通过vnc客户端远程访问服务器,访问方式是IP+会话号,如172.168.2.66:1,注意后面的:1不是端口号,而是我们前面所指的vncserver@:x.service中的x。当然也可以直接加端口号。
6.报错现象:
- 无法启动服务:
出现这个现象可能是由于修改了配置文件(文件名或内容),导致无法重新启动,可通过rm /tmp/.X11-unix/X1(X1其中的1代表vncserver@:x.service中的x)删除该文件并重启服务。或者vncserver -kill :1杀掉会话,重新启动服务。
- 未对用户设置密码。切换到用户下,执行vncpasswd设置即可。