通过vnc自动连接linux,通过VNC连接Linux远程桌面

2023-05-16

因为特殊的需求关系,琢磨了一下如何在本地连接远程Linux主机的桌面环境。翻了不少网上的相关文章,大部分都只讲了步骤没有说为什么这么做,我就简单再复述一遍吧,加深一下印象。

环境如下:

本地:OS X 10.8.2

服务器:CentOS 6(64位)

1

2

本地:OSX10.8.2

服务器:CentOS6(64位)

基本原理其实很简单,要连接服务器的远程桌面环境,首先需要在服务器准备好桌面环境,然后通过远程桌面的协议实现远程访问。

一、安装服务器桌面环境

因为连接的是服务器,所以一般是没有预装有桌面环境的,需要自行安装。

安装桌面环境主要两部分,X窗口系统和桌面环境(KDE或Gnome等)。

关于X窗口系统的介绍参见这里,关于X窗口系统和KDE、Gnome之间的关系参见这里,简单来说:

Gnome 和 KDE 是“桌面系统”,一种很多程序和函数库的集合。它们的设计目的是提供一致的方便的操作方式来满足普通用户的需要。它们不但包含窗口管理器,还有很多实用程序和应用程序,比如配置程序,工具条,编辑器,绘图工具…… 其实 Gnome 可以和很多窗口管理器合作,在历史上,Gnome 使用过的窗口管理器包括 englightenment, sawmill, sawfish, metacity。KDE 的窗口管理器叫做 kwin。

言归正传,既然知道了KDE、Gnome需要依赖于X窗口系统运行,首先安装X窗口系统:

yum grouplist #查看组列表,确认是否已经安装过X窗口系统

yum groupinstall "X Window System" #安装X窗口系统

1

2

yumgrouplist#查看组列表,确认是否已经安装过X窗口系统

yumgroupinstall"X Window System"#安装X窗口系统

成功安装后再安装桌面环境,如果要安装Gnome:

yum groupinstall "Desktop" #CentOS5下为 "GNOME Desktop Environment"

1

yumgroupinstall"Desktop"#CentOS5下为 "GNOME Desktop Environment"

至此服务器上的桌面环境已经准备就绪了,后续可以自行安装中文支持、输入法等,方法类似,不加赘述了。

二、安装配置VNC server

既然已经有桌面环境了,事情就简单了,通过远程桌面访问即可,可以采用的方法有很多,这里选用VNC作为访问手段。关于VNC的介绍参见这里。

VNC分为两部分,server和client,client运行在本地机器,而server运行在目标机器。client通过与server进行通信将远程的桌面在本地显示,而server运行在目的端(Xvnc),响应client端的请求。

首先在服务器端安装VNC server程序:

yum install tigervnc-server #CentOS5中为vnc-server

1

yuminstalltigervnc-server#CentOS5中为vnc-server

配置VNC server:

su kongfy #切换至要开启远程桌面的账户,重要!

vncpasswd #设置vnc连接密码

vim ~/.vnc/xstartup #修改配置文件

1

2

3

sukongfy#切换至要开启远程桌面的账户,重要!

vncpasswd#设置vnc连接密码

vim~/.vnc/xstartup#修改配置文件

配置文件的最后一行

twm &

1

twm&

修改为

gnome-session GNOME

startkde KDE

1

2

gnome-sessionGNOME

startkdeKDE

上面两个按照安装的桌面环境选择,twm是X窗口系统自带的一个非常简陋的窗口管理器,通过修改该文件可以改变vnc默认开启的桌面系统。PS:这一步我并没有做还是默认启动了Gnome环境,不解。

最后启动vncserver:

vncserver

1

vncserver

如果一切顺利,你会看到类似下面的输出:

New 'server:1 (kongfy)' desktop is server:1

Starting applications specified in /home/kongfy/.vnc/xstartup

Log file is /home/kongfy/.vnc/server:1.log

1

2

3

4

New'server:1 (kongfy)'desktopisserver:1

Startingapplicationsspecifiedin/home/kongfy/.vnc/xstartup

Logfileis/home/kongfy/.vnc/server:1.log

输出中的编号就是启动的vnc远程桌面的ID,之后在连接中会用到。

三、连接远程桌面

VNC的连接可以通过浏览器或客户端进行访问,浏览器访问的方法我没有实际测试,不谈。

客户端在Win下可以采用VNCViewer进行,Mac下使用Chicken of the VNC连接。

以Chicken of the VNC为例,开始连接:

09cf6d2c24691f767db47a344663dab8.png

输入要连接服务器的域名(或IP)、vnc编号和密码即可连接

连接成功:

7a76c501c2455ec5aba8feb123305972.png

浏览:

573

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过vnc自动连接linux,通过VNC连接Linux远程桌面 的相关文章

  • 如何使用 xterm.js 创建基于 Web 的终端以 ssh 进入本地网络上的系统

    我偶然发现了这个很棒的图书馆xterm js https xtermjs org 这也是 Visual Studio Code 终端的基础 我有一个非常普遍的问题 我想通过基于网络的终端 不在网络中 可能位于 aws 服务器上 访问本地网络
  • 仅打印“docker-container ls -la”输出中的“Names”列

    发出时docker container ls la命令 输出如下所示 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a67f0c2b1769 busybox tail f dev
  • Linux中的定时器类

    我需要一个计时器来以相对较低的分辨率执行回调 在 Linux 中实现此类 C 计时器类的最佳方法是什么 有我可以使用的库吗 如果您在框架 Glib Qt Wx 内编写 那么您已经拥有一个具有定时回调功能的事件循环 我认为情况并非如此 如果您
  • sendfile64 只复制约2GB

    我需要使用 sendfile64 复制大约 16GB 的文件 到目前为止我所取得的成就是 include
  • 两种情况或 if 哪个更快? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我必须制作一个 非常 轻的脚本 它将接受用户的选项并调用脚本中的函数来执行一些任务 现在我可以使用 IF 和 CASE 选项 但我想知道两
  • Pyaudio 安装错误 - “命令‘gcc’失败,退出状态 1”

    我正在运行 Ubuntu 11 04 Python 2 7 1 并想安装 Pyaudio 于是我跑了 sudo easy install pyaudio 在终端中 进程退出并显示以下错误消息 Searching for pyaudio Re
  • Linux:在文件保存时触发 Shell 命令

    我想在修改文件时自动触发 shell 命令 我认为这可以通过注册 inotify 挂钩并调用来在代码中完成system 但是是否有更高级别的 bash 命令可以完成此任务 尝试 inotify 工具 我在复制链接时遇到问题 抱歉 但 Git
  • Linux:如何从特定端口发送TCP数据包?

    如何打开原始套接字以从特定 TCP 端口发送 我希望所有连接始终来自临时端口以下的一系列端口 如果您正在使用raw套接字 然后只需在数据包标头中填写正确的 TCP 源端口即可 相反 如果您使用 TCP 套接字接口 socket connec
  • 使用 sh 运行 bash 脚本

    我有 bash 脚本 它需要 bash 另一个人尝试运行它 sh script name sh 它失败了 因为 sh 是他的发行版中 dash 的符号链接 ls la bin sh lrwxrwxrwx 1 root root 4 Aug
  • 有谁知道在哪里定义硬件、版本和序列号。 /proc/cpuinfo 的字段?

    我想确保我的 proc cpuinfo 是准确的 目前它输出 Hardware am335xevm Revision 0000 Serial 0000000000000000 我可以在代码中的哪里更改它以给出实际值 这取决于 Linux 的
  • ubuntu:升级软件(cmake)-版本消歧(本地编译)[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我的机器上安装了 cmake 2 8 0 来自 ubuntu 软件包 二进制文件放置在 usr bin cmake 中 我需要将 cmake 版本至少
  • 如何通过保持目录结构完整来同步路径中匹配模式的文件?

    我想将所有文件从服务器 A 复制到服务器 B 这些文件在不同级别的文件系统层次结构中具有相同的父目录名称 例如 var lib data sub1 sub2 commonname filetobecopied foo var lib dat
  • 为arm构建WebRTC

    我想为我的带有arm926ej s处理器的小机器构建webrtc 安装 depot tools 后 我执行了以下步骤 gclient config http webrtc googlecode com svn trunk gclient s
  • SSE:跨页边界的未对齐加载和存储

    我在页面边界旁边执行未对齐加载或存储之前读过某处 例如使用 mm loadu si128 mm storeu si128内在函数 代码应首先检查整个向量 在本例中为 16 个字节 是否属于同一页 如果不属于同一页 则切换到非向量指令 我知道
  • 将 jar 作为 Linux 服务运行 - init.d 脚本在启动应用程序时卡住

    我目前正在致力于在 Linux VM 上实现一个可运行的 jar 作为后台服务 我已经使用了找到的例子here https gist github com shirish4you 5089019作为工作的基础 并将 start 方法修改为
  • docker容器大小远大于实际大小

    我正在尝试从中构建图像debian latest 构建后 报告的图像虚拟大小来自docker images命令为 1 917 GB 我登录查看尺寸 du sh 大小为 573 MB 我很确定这么大的尺寸通常是不可能的 这里发生了什么 如何获
  • 查找哪些页面不再与写入时复制共享

    假设我在 Linux 中有一个进程 我从中fork 另一个相同的过程 后forking 因为原始进程将开始写入内存 Linux写时复制机制将为进程提供与分叉进程使用的不同的唯一物理内存页 在执行的某个时刻 我如何知道原始进程的哪些页面已被写
  • 我的线程图像生成应用程序如何将其数据传输到 GUI?

    Mandelbrot 生成器的缓慢多精度实现 线程化 使用 POSIX 线程 Gtk 图形用户界面 我有点失落了 这是我第一次尝试编写线程程序 我实际上并没有尝试转换它的单线程版本 只是尝试实现基本框架 到目前为止它是如何工作的简要描述 M
  • 如何通过ssh检查ubuntu服务器上是否存在php和apache

    如何通过ssh检查Ubuntu服务器上apache是 否安装了php和mysql 另外如果安装的话在哪个目录 如果安装了其他软件包 例如 lighttpd 那么它在哪里 确定程序是否已安装的另一种方法是使用which命令 它将显示您正在搜索
  • 如何更改 Apache 服务器的根目录? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何更改 Apache 服务器的文档根目录 我基本上想要localhost从 来 users spencer projects目录而不是

随机推荐