当前位置: > Linux服务器 > VNC >

Centos7 安装vnc

时间:2016-01-07 00:03来源:www.it.net.cn 作者:IT

Centos7与Centos6.x有了很大的不同。

为了给一台服务器装上远程桌面,走了不少弯路。写这篇博文,纯粹为了记录,以后如果遇到相同问题,可以追溯。

1、假定你的系统没有安装vnc的任何软件,那么,首先安装vnc

 
yum -y install tigervnc-server tigervnc

2、Centos7之前的系统,如果安装vnc一般都需要配置

 
[root@localhost ~]# cat /etc/sysconfig/vncservers 
THIS FILE HAS BEEN REPLACED BY /lib/systemd/system/vncserver@.service

但是,如上所述,Centos7需要配置的文件在

 
[root@localhost ~]# ll /lib/systemd/system/vncserver@.service
-rw-r--r--. root root 1744 Jun 10 14:15 /lib/systemd/system/vncserver@.service

3、文件内有如下提示

 
Quick HowTo:
1. Copy this file to /etc/systemd/system/vncserver@:.service
2. Edit  and vncserver parameters appropriately
  ("runuser -l  -c /usr/bin/vncserver %i -arg1 -arg2")
3. Run `systemctl daemon-reload`
4. Run `systemctl enable vncserver@:.service

 

4、复制一份文件,并改名为vncserver@:1.service

 
[root@localhost ~]# cp /lib/systemd/system/vncserver@.service /lib/systemd/system/vncserver@:1.service

5、将文件中的用你当前的用户替换,将%i替换为1

 
[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 :1 /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver :1 -geometry 1280x720 -depth 24"
PIDFile=/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill :1 /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target

6、更新systemctl

 
systemctl daemon-reload

7、设置为自动启动

 
systemctl enable vncserver@:1.service

8、启动vnc服务

 
systemctl start vncserver@:1.service

9、在iptables中加入对应的端口5901(注意,如果有其他用户,那么也需要将端口加上。vnc的端口默认是5900 + n)

 
[root@localhost system]# cat /etc/sysconfig/iptables
sample configuration for iptables service
you can edit this manually or use system-config-firewall
please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5901 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

注意:

1、如果你不配置和启用防火墙,此时用VNC Viewer连接的话,会报:"connect:Connection timed out(10060)"错误。

2、本文是以root用户为例,如果其他用户也需要登录,那么,还需要将文件复制为

 
cp /lib/systemd/system/vncserver@.service /lib/systemd/system/vncserver@:2.service

同时,将文件内的%i改为2,并建立对应用户的vncpasswd。

3、你可以通过UltraVNC,TigerVNC或者RealVNC Viewer进行访问,我在win7下使用这3中工具均能连接

 

 5.  启用配置文件 systemctl enable vncserver@:1.service

 6. 设置登陆密码:vncpasswd

 7. 启动vncserver:systemctl start vncserver@:1.service

 8 . 启动状态查看:systemctl status vncserver@:1.service

 9.查看端口状态:netstat -lnt grep 590*

 10.查看报错信息:grep vnc /var/log/messages

 


关闭防火墙和SELinux后,仍然报错,最后通过修改vnc配置文件:type=simple后问题解决

 

(责任编辑:IT)
------分隔线----------------------------