centos7安装vncserver
我要通过普通用户test和root来使用vnc连接centos7
安装tigervnc-server
以下都在root用户下操作:
1.直接yum
yum install -y tigervnc-server
2.复制两个模板,1.service给test用,2.service给root用。
cp /lib/systemd/system/aaa@qq.com /etc/systemd/system/aaa@qq.com:1.service
cp /lib/systemd/system/aaa@qq.com /etc/systemd/system/aaa@qq.com:2.service
安装server成功后直接复制模板就行了。aaa@qq.com 是配置文件的模板,1加上默认端口5900就是5901,客户端通过vnc连接test用户时的端口就是5901。root是5902,还有其他用户的话,以此类推。
1.修改aaa@qq.com:1.service中的参数ExecStart和PIDFile中的,改为对应的用户名test,如下:
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l test -c "/usr/bin/vncserver %i"
PIDFile=/home/test/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target
2.同样修改aaa@qq.com:2.service参数ExecStart和PIDFile中的,改为对应的用户名root,
和普通用户不一样,root要去掉ExecStart开头的/usr, 和PIDFiler 的/home。
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
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
3.修改vnc的密码,切换到test用户下执行vncpasswd,不同用户要在自己的环境中修改密码。root就在root环境下修改就行了。
4.加载配置,每次修改配置后都要执行这个命令。
systemctl daemon-reload
5.在root环境下启动vnc
systemctl start aaa@qq.com:1.service
systemctl start aaa@qq.com:2.service
或者用vncserver命令启动:
vncserver :1
vncserver :2
建议用命令vncserver :1启动,报错信息会比较详细,如果启动失败要先把/tmp/.X1-lock这样的文件和/tmp/.X11-unix/目录下的所有文件删了再重启,否则依然会报错。
1和2启动后,netstat -lnpt|grep Xvnc查看对应端口。
这时可以通过客户端vnc来连接了。
停止用命令:
vncserver -kill :1
vncserver -kill :2
建议可以学习一下vncserver命令,很简单
特别注意
用systemctl start aaa@qq.com:1.service启动,会有奇怪的错误,比如:
[aaa@qq.com]# systemctl start aaa@qq.com:1.service
Job for aaa@qq.com:1.service failed because a configured resource limit was exceeded. See “systemctl status aaa@qq.com:1.service” and “journalctl -xe” for details.
此时可能启动成功了,但是systemctl status查看状态还是失败的,不知道什么原因,所以建议用vncserver命令来启动。
6.防火墙设置
开放5901,5902端口
firewall-cmd --zone=public --add-port=5901/tcp --permanent
firewall-cmd --zone=public --add-port=5902/tcp --permanent
或者直接关闭防火墙:systemctl stop firewalld
客户端连接
windows上自行安装好vnc viewer,新建连接,VNC Server填写对应ip和端口就行了,这里我要用root,所以端口是5902,如果用test端口就是5901。
界面上双击图标,然后输入密码就行了,密码是前面用vncpasswd设置的。