先啰嗦一下VNC是什么( Virtual Network Computing)VNC允许Linux系统可以类似实现像Windows中的远程桌面访问那样访问Linux桌面。本文配置机器是兴宁市网络信息中心的一台Centos 7 HP服务器环境下运行。

首先试试服务器装了VNC没

[root@wic ~]# rpm -q tigervnc tigervnc-server

没安装的话会直接出现

package tigervnc is not installed
package tigervnc-server is not installed

如果没有安装X-Windows 桌面的话要先安装Xwindows

[root@wic ~]# yum check-update
安装图形化组件
# yum groupinstall "GNOME Desktop" "Graphical Administration Tools"
[root@wic ~]# unlink /etc/systemd/system/default.target
[root@wic ~]# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
[root@wic ~]# reboot

第一步,安装VNC packages:

[root@wic ~]# yum install tigervnc-server -y

第二步,修改配置信息,在/etc/systemd/system/下建立文件夹vncserver@:1.service 把example config 文件从/lib/systemd/system/vncserver@.service复制到里面

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

然后打开这个配置文件/etc/systemd/system/vncserver@:1.service替换掉默认用户名

找到这一行

ExecStart=/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i"
PIDFile=/home/<USER>/.vnc/%H%i.pid

这里我直接用root 用户登录,所以我替换成

ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%i.pid

如果是其他用户的话比如linoxide替换如下

ExecStart=/sbin/runuser -l linoxide -c "/usr/bin/vncserver %i"
PIDFile=/home/linoxide/.vnc/%H%i.pid

第三步,重加载 systemd

[root@wic ~]# systemctl daemon-reload

第四步,为VNC设密码

[root@wic ~]# vncpasswd

第五步,由于我这边的Centos 7 是用iptable防火墙的所以

vim /etc/sysconfig/iptables

在合适位置加上

-A INPUT -m state --state NEW -m tcp -p tcp --dport 5900:5903 -j ACCEPT

重启iptable

service iptables restart

如果是用Centos 7 默认防火墙的可能需要

[root@wic ~]# firewall-cmd --permanent --add-service vnc-server
[root@wic ~]# systemctl restart firewalld.service

如果还是有问题可以试试关闭防火墙 如果出现10061请试下【重要】

  1. 停止并禁用防火墙;
    systemctl stop firewalld.service
    systemctl disable firewalld.service

如果报 【重要】

Centos7 VNC报vncserver@:1.service:control process exited,code-exited status=98

  

 Job for vncserver@:1.service failed because the control process exited with error code. See "systemctl status vncserver@:1.service" and "journalctl -xe" for details.

  


修改type为
type=simple

第六步,设默认启动并开启VNC

[root@wic ~]# systemctl enable vncserver@:1.service
[root@wic ~]# systemctl start vncserver@:1.service

这样基本上Centos 端就设好了,Windows 端要去下一个VNC Viewer 的软件。连接一下试试看着有点简陋但是上去了的

查看vncserver状态:
ps -ef | grep vnc  
netstat -tulnp

无法启动时 rm -rf /tmp/.X11-unix/* 

解决方案总结如下:

VNCServer 配置:

编辑/lib/systemd/system/vncserver@:1.service,设置用户root相关参数,最终内容如下

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=simple
User=root

# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=-/usr/bin/vncserver -kill %i
ExecStart=/usr/bin/vncserver %i
PIDFile=/root/.vnc/%H%i.pid
ExecStop=-/usr/bin/vncserver -kill %i

[Install]
WantedBy=multi-user.target

  

1.修改配置文件/root/.vnc/xstartup

注:有的系统配置里有 –nolisten tcp 和 –nohttpd ,这两个是阻止Xwindows登陆和HTTP方式VNC登陆的,如果需要图形界面,那就删除这部分

如果使用的是gnome图像界面,则需要注释掉以下两行,
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
并添加以下这行:
gnome-session &

例如:我的配置文件如下
#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
gnome-session &

2. 修改用户配置文件:/etc/sysconfig/vncservers

打开配置文件:vi /etc/sysconfig/vncservers,去掉下面这两行前的“#”,也就是说把这两行的注释给去掉。
VNCSERVERS=”1:root”
VNCSERVERARGS[1]="-geometry 800×600"

1表示VNC以桌面1运行,这样可以启动root的桌面。你可以添加其他的用户,例如VNCSERVERS=”

1:root,2:user1,3:user2”,当然这些用户是实现系统存在的。

例如:我的/etc/sysconfig/vncservers配置文件如下:

VNCSERVERS=”1:root”
VNCSERVERARGS[1]="-geometry 800×600"

另外:如果有图像界面的话,在系统设置>服务器设置>服务中把 vncserver 打勾,可以随系统启动。

3、改变xstartup的权限

这个问题是很多人容易忽视的问题,也是造成连接成功后黑屏的原因之一。

在CentOS中,xstartup的文件路径为:/root/.vnc/ (可以通过locate xstartup来查看xstartup的文件路径)

所以需要执行:chmod 777 root/.vnc/xstartup

4. 关闭防火墙对VNC端口的限制
如果需要从外网控制内网的某台Linux,则需要打开防火墙相应的端口,并在路由器上进行端口映射。
VNC给浏览器的端口是5800+N,给vncviewer的端口是5900+N,N是设置的display号。

如果不想打开防火墙,但是仍需要VNC这项服务,则需要:

编辑vi /etc/sysconfig/iptables
在里边加入如下两行:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5902 -j ACCEPT

这里需要的是,display N 对应的端口就是 5900+N,所以不建议设的太多。

5. 启动 VNC Server:
打开终端执行:vncserver
第一次运行 vncserver,将会要求输入两次密码,会看到如下提示信息:
New ‘localhost.localdomain:1 (root)’ desktop is localhost.localdomain:1
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/localhost.localdomain:1.log
上边信息中的“:1”表示启动的第一个vnc桌面。

6. 停止vncserver:(选读)
停止 vncserver 的方法是执行:vncserver -kill :1
注意:“:1”,表示停止第一个vnc桌面,1代表当前启用的VNCserver序号,“:1”之前是有一个空格的。如果目前启动的序号是2,若要关闭其,则应该使用“vncserver -kill :2”.

7. 修改vnc密码:(选读)
修改vnc密码的方法是执行:vncpasswd

输入两次密码即可。

8:检查服务器端VNC Server是否正常运行中:

执行:ps -ef|grep vnc

如果vnc在执行,可以看到类似的消息:

[root@IMS ~]# ps -ef|grep vnc
root      3605     1 0 Jul13 ?        00:13:51 Xvnc :1 -desktop MyIMS.local:1(root) -httpd /usr/share/vnc/classes -auth /root/.Xauthority -geometry 800x600 -depth 16 -rfbwait 30000 -rfbauth /root/.vnc/passwd -rfbport 5901 -pn

说明是序号为":1"vnc进程在端口为5901上进行监听。

9.VNC 客户端

服务器端运行正常后,我们方可以考虑使用VNC客户端与其相连。
Windows 客户端 VNC Viewer 的配置:
1. 从 http://www.realvnc.com/download.html 下载 VNC Free Edition for Windows Version 4.1.2
2. 打开 VNCViewer :
填入VNCServer 的IP:编号(1或2或…)
3. VNCViewer 切换全屏模式:F8

10 一些配置文件:
/etc/X11/xorg.conf 设置屏幕分辨率

到这里,您的VNC应该已经能够连上,但有可能出现黑屏的问题:

1、查看/root/.vnc/下的log日志,有没有报错;有可能是xstartup权限不够。“chmod xstartup 777”更改下

权限,重启后再进。

2、重新启动下电脑,试一试。我就是各种配置之后,始终黑屏,重启电脑后OK。

查看状态:

# systemctl status vncserver@:1

4.防火墙添加相关规则
# firewall-cmd --permanent --add-service vnc-server
# firewall-cmd --reload

centos7.4 可远程可视化桌面安装的更多相关文章

  1. 记一次腾讯云服务器centos linux可视化桌面安装并进行远程桌面登录及其安装中文包

    开始前请确保你有能上网的主机两部(一个是CentOS7系统,一个是Windows10系统)1.用SSH root用户登录Centos主机:2.检查你的centos是否装了epel库 执行命令:rpm ...

  2. linux可视化桌面安装

    [root@VM_193_201_centos ~]# yum grouplist Loaded plugins: fastestmirror, langpacks There is no insta ...

  3. Linux服务器快速安装可视化桌面且可以远程RDP远程连接

    我们很多网友在选择Linux服务器的时候并不是用来做网站的,有些是需要用到远程桌面安装软件或者是其他用途.但是我们知道大部分海外主机商是只有LINUX系统且没有可视化桌面,当然也有一些商家是支持安装G ...

  4. 腾讯云Ubuntu安装可视化桌面

    1.安装图形界面 sudo apt-get update 更新 1).sudo apt-get install xinit 2).sudo apt-get install gdm  ( 登陆窗口,用于 ...

  5. 详解如何在CentOS7中使用Nginx和PHP7-FPM安装Nextcloud

    转载地址:https://www.jb51.net/article/109382.htm 这篇文章主要介绍了详解如何在CentOS7中使用Nginx和PHP7-FPM安装Nextcloud,会通过 N ...

  6. Win7 远程 Ubuntu 桌面 mate desktop,并实现中文输入法

    一. 安装mate desktop: $sudo apt-add-repository ppa:ubuntu-mate-dev/ppa $sudo apt-add-repository ppa:ubu ...

  7. 如何使用 SPICE client (virt-viewer) 来连接远程虚拟机桌面?

    如何使用 SPICE client (virt-viewer) 来连接远程虚拟机桌面? 什么是SPICE? SPICE (Simple Protocol for Independent Computi ...

  8. VNC配置连接远程服务器桌面-linux\windows

    一.VNC配置连接远程服务器桌面 1.服务器安装VNC-server # yum -y install vnc-server 2.配置VNC连接登陆密码 # vncpasswd 回车 3.配置VNC- ...

  9. VNC轻松连接远程Linux桌面

    VNC连接Linux桌面,要想连接Linux远程桌面,按照下面的步骤,非常简单.快速,Linux配置VNC(以RedHat.CentOS.Fedora系列为例). 工具/原料 Linux平台安装VNC ...

随机推荐

  1. 洛谷P1605 迷宫 (DFS)

    题目背景 迷宫 [问题描述] 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过.给定起点坐标和 终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案.在迷宫 中移动有上下 ...

  2. java 43 接口

  3. D4 树的直径、重心以及基环树

    第一题第二题鉴上我前几篇博客poj1985 poj1849:https://www.cnblogs.com/Tyouchie/p/10384379.html 第三题:数的重心:poj1655 来自sj ...

  4. JS设计模式(12)装饰者模式

    什么是装饰者模式? 定义:动态地给一个对象添加一些额外的职责.就增加功能来说,装饰器模式相比生成子类更为灵活. 主要解决:一般的,我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且 ...

  5. SIP 编解码器

    编解码器,编码器 - 解码器的简称,做两个基本操作 - 首先,它将模拟语音信号转换为其等效数字形式,以便可以容易地发送. 此后,它将压缩的数字信号转换回其原始模拟形式,以便可以重放. 市场上有许多编解 ...

  6. LOJ #10132. 「一本通 4.4 例 3」异象石

    题目地址 LOJ 题解 神仙思路.思路参考自<算法竞赛进阶指南>. 考虑维护dfs序中相邻两个石头的距离,那么每次?的答案就是sum/2(首尾算相邻) 然后维护一下拿个平衡树/set维护一 ...

  7. Apache Solr入门教程(初学者之旅)

    Apache Solr入门教程(初学者之旅) 写在前面:本文涉及solr入门的各方面,建议边思考边实践,相信能帮助你对solr有个清晰全面的了解并能简单实用. 在Apache Solr初学者教程的这个 ...

  8. FileZilla客户端连接腾讯云FTP服务器时出现“227 Entering Passive Mode”

    FTP的主动模式(PORT Mode)及被动模式(Passive Mode) FTP的特殊性: 大多数的TCP服务是使用单个的连接,一般是客户向服务器的一个周知端口发起连接,然后使用这个连接进行通讯. ...

  9. Android 回退键监听

    回退键(back)监听:方法1:回调方法onBackPressed String LOG_TAG="TAG";  @Override    public void onBackPr ...

  10. 使用qrcode输入信息生成二维码包含二维码说明信息,点击转化为图片并下载

    说明:输入汉字和数字都可以识别并展示 <body> <h2 id="h2">二维码生成</h2> <br> <span id= ...