当前位置: 首页 > news >正文

linux服务器安装xfce,Ubuntu 16.10安装Xfce桌面与VNC远程连接

在远程服务器上运行桌面

通常在远程Linux服务器上工作时,您可以使用ssh终端。 但是,有时您需要在服务器上运行GUI应用程序,并保持运行一段时间。

最近我不得不做类似的事情,所以我设置一个Ubuntu服务器与桌面,并通过VNC访问它。

这个想法实现很简单。 在服务器上安装您选择的任何桌面环境。 在本教程中,我们将使用Xfce,因为它与Gnome和KDE相比更具小巧。

然后使用vnc服务器启动桌面环境,并创建一个X显示会话,我们将通过vnc客户端从本地台式机访问。

安装桌面环境和VNC服务器

Xfce是一款轻量级桌面,非常适合在远程服务器上使用。 首先安装xfce软件包和tightvnc服务器。 在进行实际安装之前,最好先更新包缓存。

sudo apt-get update

sudo apt-get install xfce4 xfce4-goodies tightvncserver

请注意,这将只安装包,而不是启动任何东西。 我们将在本指南后面自行启动具体设置的vncserver。

如果dpkg进程意外退出,则可能必须运行以下命令 -

#sudo dpkg --configure -a

为vnc创建一个新用户

接下来要做的是创建一个将在vnc会话期间使用的unix用户。 用户名可以是任何东西。 使用adduser命令。

# adduser mike

Adding user `mike' ...

Adding new group `mike' (1001) ...

Adding new user `mike' (1001) with group `mike' ...

Creating home directory `/home/mike' ...

Copying files from `/etc/skel' ...

Enter new UNIX password:

Retype new UNIX password:

passwd: password updated successfully

Changing the user information for mike

Enter the new value, or press ENTER for the default

Full Name []:

Room Number []:

Work Phone []:

Home Phone []:

Other []:

Is the information correct? [Y/n]

#

vncserver将使用此unix用户启动桌面环境。 这意味着,在远程桌面上工作时,您将成为此用户

为用户设置“vnc密码”

vnc服务器维护一个单独的密码,用于通过vnc客户端登录到vnc服务器。 该密码与unix用户密码不同。 它使用vncpasswd命令配置。

首先切换到上一步中创建的用户“mike”,并设置vnc服务器密码。

su - mike

接下来使用vncpasswd命令

$ vncpasswd

Using password file /home/mike/.vnc/passwd

VNC directory /home/mike/.vnc does not exist, creating.

Password:

Verify:

Would you like to enter a view-only password (y/n)?

mike@bunty:~$

请注意,passwd文件不存在,并在此步骤中首次创建。

如果您以前已经运行vncserver命令,那么它将创建文件。 当您第一次运行vncserver时,它会创建一个默认启动脚本

$ vncserver

You will require a password to access your desktops.

Password:

Password too short

enlightened@desktop:~$ vncserver

You will require a password to access your desktops.

Password:

Verify:

Would you like to enter a view-only password (y/n)? n

New 'X' desktop is desktop:1

Creating default startup script /home/enlightened/.vnc/xstartup

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

Log file is /home/enlightened/.vnc/desktop:1.log

但是,我们不需要运行vncserver命令。 它将使用启动脚本自动启动。

创建xstartup脚本

下一个重要的文件是xstartup脚本。 它包含有关哪些X应用程序开始的说明。 桌面环境是我们必须开始的X应用程序。

如果文件已经存在,首先要备份该文件

mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

现在用nano编辑它

vnc@server:~$ nano .vnc/xstartup

注 - 这是用户vnc的主目录,即/home/mike/.vnc/xstartup

在xstartup脚本中输入以下几行

#!/bin/bash

xrdb $HOME/.Xresources

startxfce4 &

startxfce4命令将启动xfce桌面。 保存文件并关闭它。

使xstartup文件可执行。 这是必要的,以便vncserver可以执行此文件。

$ chmod +x ~/.vnc/xstartup

创建vnc服务文件

下一步是创建vnc服务文件,以便我们可以使用service命令启动vnc服务器,而不必每次都运行vncserver命令。

确保在USER变量中输入正确的用户名。 这是vnc服务器将用于启动桌面会话的用户。

root@linuxidc:~# sudo nano /etc/init.d/vncserver

粘贴以下脚本

#!/bin/bash

PATH="$PATH:/usr/bin/"

export USER="mike"

DISPLAY="1"

DEPTH="16"

GEOMETRY="1024x768"

OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"

. /lib/lsb/init-functions

case "$1" in

start)

log_action_begin_msg "Starting vncserver for user '${USER}' on localhost:${DISPLAY}"

su ${USER} -c "/usr/bin/vncserver ${OPTIONS}"

;;

stop)

log_action_begin_msg "Stoping vncserver for user '${USER}' on localhost:${DISPLAY}"

su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}"

;;

restart)

$0 stop

$0 start

;;

esac

exit 0

保存文件并关闭它。 使其可执行

# chmod +x /etc/init.d/vncserver

开始服务

开始并测试我们的步骤。

首先重新加载systemctl,以便它可以使用vncserver启动脚本。

systemctl守护进程重新加载

现在启动vncserver。 它在端口5901上启动服务器

#service vncserver start

检查它的运行

root@linuxidc:~# service vncserver status

● vncserver.service

Loaded: loaded (/etc/init.d/vncserver; bad; vendor preset: enabled)

Active: active (exited) since Thu 2017-03-02 05:36:42 UTC; 6s ago

Docs: man:systemd-sysv-generator(8)

Process: 24877 ExecStart=/etc/init.d/vncserver start (code=exited, status=0/SUCCESS)

Mar 02 05:36:40 linuxidc systemd[1]: Starting vncserver.service...

Mar 02 05:36:40 linuxidc vncserver[24877]:  * Starting vncserver for user 'vnc' on localhost:1...

Mar 02 05:36:40 linuxidc su[24885]: Successful su for vnc by root

Mar 02 05:36:40 linuxidc su[24885]: + ??? root:vnc

Mar 02 05:36:40 linuxidc su[24885]: pam_unix(su:session): session opened for user vnc by (uid=0)

Mar 02 05:36:42 linuxidc vncserver[24877]: New 'X' desktop is linuxidc:1

Mar 02 05:36:42 linuxidc vncserver[24877]: Starting applications specified in /home/vnc/.vnc/xstartup

Mar 02 05:36:42 linuxidc vncserver[24877]: Log file is /home/vnc/.vnc/linuxidc:1.log

Mar 02 05:36:42 linuxidc systemd[1]: Started vncserver.service.$ cat ~/.vnc/*.pid

18577

18731# ps -ef | grep tightvnc

vnc      24574    1  0 05:32 ?        00:00:00 Xtightvnc :1 -desktop X -auth /home/vnc/.Xauthority -geometry 1024x768 -depth 16 -rfbwait 120000 -rfbauth /home/vnc/.vnc/passwd -rfbport 5901 -fp /usr/share/fonts/X11/misc/,/usr/share/fonts/X11/Type1/,/usr/share/fonts/X11/75dpi/,/usr/share/fonts/X11/100dpi/ -co /etc/X11/rgb

root    24744 10412  0 05:33 pts/0    00:00:00 grep --color=auto tightvnc

root@linuxidc:~#

检查vnc服务器的打开端口。 从vnc客户端连接时,需要正确的端口号

# netstat -nlp | grep vnc

tcp        0      0 0.0.0.0:5901            0.0.0.0:*              LISTEN      24574/Xtightvnc

tcp        0      0 0.0.0.0:6001            0.0.0.0:*              LISTEN      24574/Xtightvnc

unix  2      [ ACC ]    STREAM    LISTENING    5225386  24574/Xtightvnc    /tmp/.X11-unix/X1

Vnc server can also be started by calling the script directly.

也可以通过直接调用脚本来启动Vnc服务器。

# /etc/init.d/vncserver start

[ ok ] Starting vncserver (via systemctl): vncserver.service.

root@linuxidc:~#

停止vncserver

# service vncserver stop

在桌面上安装vncviewer客户端

现在,我们将vnc服务器启动并运行GUI桌面环境。

在Ubuntu上安装xtightvncviewer。

$ sudo apt-get install xtightvncviewer

现在使用vncviewer命令连接到远程vnc服务器。

$ vncviewer -quality 5 -encodings“copyrect tight hextile zlib corre rre raw”-compresslevel 5 IPADDR:5901

我们使用较低质量和压缩编码来压缩正在传输的图像数据并使其更快。

使用像KRDC这样的其他vnc查看器可能会更慢。

0b1331709591d260c1c78e86d0c51c18.png

相关文章:

  • linux个图形界面对比,Linux对比文件,很好用的图形界面
  • Linux配置与管理samba服务器,Linux Samba服务器配置与管理
  • linux邮箱客户端配置,Linux下安装使用Mutt邮件客户端并配置邮件警报功能
  • linux heartbeat rpm,Heartbeat 3.0.3 介绍及rpm
  • linux rsh用法,Linux中rsh远程shell命令的使用技巧解析
  • C语言字符输入回车时停止,解决C语言输入单个字符屏蔽回车符的问题
  • 二分法查找字符串 c语言,c语言二分法如何实现查找数组元素
  • c++语言常量,C++常量(constant)
  • 64平台的c语言int类型值比32平台大,C语言数据类型32位和64位不同
  • c语言输入10个数从小,C语言中,从键盘输入10个数,从小到大排列输出,怎
  • 得到 android组件,android 获取HOME组件的Activity信息
  • android studio视频路径,Android studio相关设置及实现存在于工程目录中的视频播放...
  • android wear 1.6,玩的就是情怀 外国网友将CS 1.6移植到了Android Wear上
  • ability鸿蒙,Day8 鸿蒙,一个Ability全家桶究竟包括了什么(一)
  • Android网页文字进度,Android webview 进度显示
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • canvas实际项目操作,包含:线条,圆形,扇形,图片绘制,图片圆角遮罩,矩形,弧形文字...
  • CentOS从零开始部署Nodejs项目
  • CSS 专业技巧
  • C学习-枚举(九)
  • If…else
  • Iterator 和 for...of 循环
  • leetcode46 Permutation 排列组合
  • pdf文件如何在线转换为jpg图片
  • React-Native - 收藏集 - 掘金
  • v-if和v-for连用出现的问题
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 如何合理的规划jvm性能调优
  • 什么软件可以剪辑音乐?
  • 小程序开发之路(一)
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • 阿里云ACE认证之理解CDN技术
  • 回归生活:清理微信公众号
  • ​Java基础复习笔记 第16章:网络编程
  • ###STL(标准模板库)
  • #AngularJS#$sce.trustAsResourceUrl
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • #微信小程序:微信小程序常见的配置传旨
  • $.each()与$(selector).each()
  • (09)Hive——CTE 公共表达式
  • (k8s)kubernetes集群基于Containerd部署
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (poj1.2.1)1970(筛选法模拟)
  • (二)linux使用docker容器运行mysql
  • (二)丶RabbitMQ的六大核心
  • (附源码)ssm高校实验室 毕业设计 800008
  • (含答案)C++笔试题你可以答对多少?
  • (三)Kafka离线安装 - ZooKeeper开机自启
  • (转)程序员技术练级攻略
  • ./和../以及/和~之间的区别
  • .describe() python_Python-Win32com-Excel
  • .Net 6.0 处理跨域的方式
  • .NET Core中Emit的使用
  • .NET 项目中发送电子邮件异步处理和错误机制的解决方案