CentOS7安装配置vncserver教程

一、安装VNC

首先要保证目标服务器安装有图形化环境,Linux系统下常见的桌面环境有GNOME和KDE,这里我们首先通过Group的方式安装GNOME桌面,执行命令如下:

# yum -y groupinstall "X Window System" "Fonts"(安装x窗口相关包,和字体显示包))

# yum -y groupinstall "GNOME Desktop"

(若安装失败,可以安装KED Desktop:# yum -y groupinstall "KED Desktop")

现在就可以安装vncserver了,安装tigervnc服务端,执行命令如下:

# yum -y install tigervnc-server

二、配置VNC

对于Linux7之前的系统,安装完成后会通过/etc/sysconfig/vncservers文件进行配置,进入7.0版本后,这个文件仍然存在,但已经失去了实际意义,其内容只有一行:

# more /etc/sysconfig/vncservers

# THIS FILE HAS BEEN REPLACED BY /lib/systemd/system/vncserver@.service

这就跟Linux7之后服务管理方式的变化有关了,接下来我们就演示如何将vncserver配置为systemd能够管理的服务。

tigervnc-server安装后,自动创建一个名为vncserver@.server的模块文件,也就是前面/etc/sysconfig/vncservers文件内容中所指向的路径。

我们来看一下这个文件中的内容:

# more /lib/systemd/system/vncserver@.service

# The vncserver service unit file

# Quick HowTo:

# 1. Copy this file to /etc/systemd/system/vncserver@.service

# 2. Edit /etc/systemd/system/vncserver@.service, replacing

#    with the actual user name. Leave the remaining lines of the file unmodified

#    (ExecStart=/usr/sbin/runuser -l -c "/usr/bin/vncserver %i"

#     PIDFile=/home//.vnc/%H%i.pid)

# 3. Run `systemctl daemon-reload`

# 4. Run `systemctl enable vncserver@:.service`

# DO NOT RUN THIS SERVICE if your local area network is

# untrusted!  For a secure way of using VNC, you should

# limit connections to the local host and then tunnel from

# the machine you want to view VNC on (host A) to the machine

# whose VNC output you want to view (host B)

# [user@hostA ~]$ ssh -v -C -L 590N:localhost:590M hostB

# this will open a connection on port 590N of your hostA to hostB's port 590M

# (in fact, it ssh-connects to hostB and then connects to localhost (on hostB).

# See the ssh man page for details on port forwarding)

# You can then point a VNC client on hostA at vncdisplay N of localhost and with

# the help of ssh, you end up seeing what hostB makes available on port 590M

# Use "-nolisten tcp" to prevent X connections to your VNC server via TCP.

# Use "-localhost" to prevent remote VNC clients connecting except when

# doing so through a secure tunnel.  See the "-via" option in the

# `man vncviewer' manual page.

[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 -c "/usr/bin/vncserver %i"

/home//.vnc/%H%i.pid

ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]

WantedBy=multi-user.target

操作步骤:

1、基于模板复制文件到目标路径下:

# cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

2、编辑新复制出来vncserver@:1.server文件,根据实际情况将变量替换为适当的值。所谓实际情况,指的主要是两项:服务运行的所属USER,以及服务的Display Number,默认为:1。

关于DisplayNumber,这里多补充几句。单台服务器允许同时启动多个vncserver服务,不同的vncserver运行于不同的进程,提供不同的端口服务,这是毋庸置疑的,同时每个vncserver在启动时要指定一个Display Number,指定的Display Number大于0并且不重复即可,如果启动vncserver时没有指定,那么默认的Display Number会从1开始递增。如果同一台服务器中多个vncserver启动时指定了相同的Display Number,那么只会有一个能够启动成功。

接下来我们编辑vncserver@:1.service文件,修改配置项:

# vim /etc/systemd/system/vncserver@:1.service

原始配置如下:

[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 -c "/usr/bin/vncserver %i"

PIDFile=/home//.vnc/%H%i.pid

ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

修改后的配置如下:

[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=/usr/sbin/runuser -l jss -c "/usr/bin/vncserver :1"

PIDFile=/home/jss/.vnc/%H:1.pid

ExecStop=/bin/sh -c '/usr/bin/vncserver -kill :1 > /dev/null 2>&1 || :'

总的来说,主要做了两处改动,首先是将%i替换为:1,其次是将替换为jss。

保存退出。

3、重新加载systemd的配置

# systemctl daemon-reload

4、启用这个服务,将vncserver服务设置为开机自启动:

#  systemctl enable vncserver@:1.service

至此,配置部分基本告一段落,但是注意,这个时候先不要启动该vncserver,因为vncserver的访问密钥文件还未创建,我们要为vncserver创建密钥后再启动该服务项。

由于前面的配置过程中,指定vncserver运行在jss用户下,因此,首先切换到jss用户:

# su – jss

执行vncpasswd,并输入访问密码,操作如下:

$ vncpasswd

Password:

Verify:

然后返回root用户下,以后就可以通过systemd来控制vncserver服务的启停了。

例如,启动服务:

# systemctl start vncserver@:1.service

查看服务状态:

# systemctl status vncserver@:1.service

● vncserver@:1.service - Remote desktop service (VNC)

Loaded: loaded (/etc/systemd/system/vncserver@:1.service; disabled; vendor preset: disabled)

Active: active (running) since Mon xxxx-02-06 14:23:51 CST; 1min ago

Process: 29009 ExecStart=/usr/sbin/runuser -l jss -c /usr/bin/vncserver :1 (code=exited, status=0/SUCCESS)

Process: 29007 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1 > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)

Main PID: 29035 (Xvnc)

CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service

? 29035 /usr/bin/Xvnc :1 -desktop localhost.localdomain:1 (jss) -auth /home/jss/.Xauthority -geometry 1024x768 -rfbwait 30000 -rfbauth /home/jss/.vnc/pass...

Feb 06 14:23:48 localhost.localdomain systemd[1]: Starting Remote desktop service (VNC)...

Feb 06 14:23:51 localhost.localdomain systemd[1]: Started Remote desktop service (VNC).

可以看到,服务处理active状态,已经被成功启动起来了。

三、客户端连接

当vnc服务启动之后,我们就可以在客户端通过vncviewer之类的工具连接服务器了。在指定服务器地址时,需要填入目标服务器的IP地址和服务的端口号,一般来说,目标服务器的IP地址肯定是知道的,但端口应该填什么呢。

Vnc服务所使用的端口号从5900开始,第一个运行的vnc服务启动后就是运行在5901的端口上,其它依次递增。如果要在linux系统中查询的话,可以通过netstat或ps之类的命令,例如:

# ps -ef | grep vnc

root     10936 10780  0 14:31 pts/0    00:00:00 grep --color=auto vnc

jss      29035     1  0 Feb06 ?        00:00:00 /usr/bin/Xvnc :1 -desktop localhost.localdomain:1 (jss) -auth /home/jss/.Xauthority -geometry 1024x768 -rfbwait 30000 -rfbauth /home/jss/.vnc/passwd -rfbport 5901 -fp catalogue:/etc/X11/fontpath.d -pn

这里我们就能看到,当前这个vnc服务运行在5901的端口上。如果该服务器上同时启动了多个vnc服务,那么通过查看进程的方式,也能区分出哪个服务运行于哪个用户及哪个端口。

如上图所示,指定目标服务器的IP地址和端口,点击”OK”即可。

就像我们前面提到过的,同一台服务器上可以运行多个vnc服务,不同vnc服务可以运行在不同的用户下,如果需要配置更多的vnc服务,那么可以重复步骤2中的操作,创建更多的vncserver@.service文件,为其指定不同的DisplayNumber即可。

四、vncserver服务常用管理操作

启用服务开机自启动:

# systemctl enable vncserver@:1.service

禁用服务开机自启动:

# systemctl disable vncserver@:1.service

服务启动:

# systemctl start vncserver@:1.service

服务停止:

# systemctl stop vncserver@:1.service

查看服务状态:

# systemctl status vncserver@:1.service

温馨提示:

您暂时无权查看此隐藏内容!

内容查看价格0.1元立即支付

注意:本站部分资源网络收集,如涉及版权问题请及时与站长联系,我们会在第一时间内与您协商解决。如非特殊说明,本站所有资源解压密码均为:zhangqiongjie.com。

客服:1923002089

vnc安装linux教程,Centos7安装配置vncserver详细教程相关推荐

  1. java环境教程_java环境配置的详细教程(图文)

    本篇文章给大家带来的内容是关于java环境配置的详细教程(图文),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. JAVA环境变量的配置:Path,JAVA_HOME,CLASSPAT ...

  2. post修改服务器数据源,postgresql安装及配置超详细教程

    1. 安装 根据业务需求选择版本,官网下载 初始化数据库 执行完初始化任务之后,postgresql 会自动创建和生成两个用户和一个数据库: linux 系统用户 postgres:管理数据库的系统用 ...

  3. ubuntu18.04 安装qt5.12.8及环境配置的详细教程

    这篇文章主要介绍了ubuntu18.04 安装qt5.12.8及环境配置的教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 环境 系统: ...

  4. Linux下CentOS7安装gitlib

    Linux下CentOS7安装gitlib 1.下载镜像 gitlab-ce-14.5.3-ce.0.el7.x86_64.rpm wget https://mirrors.tuna.tsinghua ...

  5. 安装部署 —— CentOS6/CentOS7 安装配置mysql 5.7

    本文记录下使用CentOS6.5 和7 使用yum安装mysql的过程&一些常见问题 CentOS7 安装MySQL8:CentOS7安装MySQL8.0图文教程_闰土的猹猹君的博客-CSDN ...

  6. VMware虚拟机安装配置Android-x86详细教程

    VMware虚拟机 安装配置Android-x86详细教程 工作环境:cn_windows_7_ultimate_with_sp1_x86 工具:VMware Workstation 10.0 and ...

  7. VMware安装Linux(CentOS7)

    VMware安装Linux(CentOS7) 1.CentOS-7的镜像下载: https://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/CentO ...

  8. mysql 5.720安装_MySQL 5.7.27下载安装配置的详细教程

    前言 在安装MySQL的时候会遇到很多问题,博客上有很多解决问题的办法,在这里我附上一些链接,遇到问题的朋友们可以阅读参考哈~本文主要针对于刚接触数据库的小白,来安装MySQL数据库.目前官网上的My ...

  9. MySQL免安装版配置部署详细教程

    MySQL免安装版配置部署详细教程 这里写目录标题 MySQL免安装版配置部署详细教程 部署MySQL免安装版(windows版) 1.windows的mysql配置文件是my.ini,将此文件放到m ...

最新文章

  1. Django博客系统(详情页面展示)
  2. insert获取主键、联合关联查询
  3. VSCode中屏蔽文件files.exclude和屏蔽文件搜索search.exclude
  4. CentOS中使用Dockerfile部署带websocket的SpringBoot的jar包
  5. docker 导入导出镜像
  6. pyecharts第九节、旭日图(现代饼图)
  7. 网工视频13第13章.计算机系统开发运行与配置疑难问题
  8. 计算机应用基础图表填空,计算机应用基础填空题.doc
  9. js入门笔记整理(二)——操作符
  10. 简单mysql程序_【备忘】mysql简单操作程序
  11. 依赖倒置原则_面向对象的设计原则你不要了解一下么?
  12. 用crontab命令实现每天定时的病毒扫描
  13. 数据结构与算法分析——Hash表
  14. 基于simulink的风能/光伏发电系统仿真
  15. python | 秦九昭算法详细介绍
  16. python print end参数_python print的参数详解
  17. oracle latch chain,ORACLE latch AND mutex 深入讲解
  18. 苹果手机投影到墙上_实用派amp;小零碎:快充数据线、实木理线器、小电视支架、高清投影仪……...
  19. windows计算机卸载,win10怎么卸载电脑上的软件?
  20. 是谁给我充的手机费?

热门文章

  1. 再获国际顶级荣誉,平头哥首席科学家谢源荣获2020年度IEEE CS技术成就奖
  2. 2020 年,嵌入式开发工程师的两大必知必会!
  3. 从 5G 到智能革命,这篇文章值得一看
  4. .NPT 扩展名格式文件类型及打开方式分析:首次渗入 XR 内容领域
  5. 山东到底有没有互联网?
  6. 小米崔宝秋:小米 AIoT 深度拥抱开源
  7. 今日头条成锤子“接盘侠”?“是真的!”
  8. 今日头条把微信按在地上摩擦
  9. Uber “杀人”事件
  10. 非法关机 mysql_转 mysql数据库非法关机铁血教训