欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

centos7安装vncserver

程序员文章站 2022-05-10 14:52:49
...

我要通过普通用户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/目录下的所有文件删了再重启,否则依然会报错。
centos7安装vncserver
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。
centos7安装vncserver
界面上双击图标,然后输入密码就行了,密码是前面用vncpasswd设置的。
centos7安装vncserver

相关标签: vnc