在远程服务器上运行桌面

通常在远程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查看器可能会更慢。

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

  1. linux gif 编辑软件,Ubuntu 16.10 安装byzanz截取动态效果图工具

    Ubuntu 16.10 安装byzanz截取动态效果图工具 1.了解byzanz截取动态效果图工具 byzanz能制作文件小,清晰的GIF动态效果图,不足就是,目前只能通过输入命令方式来录制. by ...

  2. linux 6.4 图形界面,为CentOS 6.4安装图形界面并用VNC远程连接

    为CentOS 6.4安装图形界面并用VNC远程连接 1.安装VNC服务 #yum install -y tigervnc-server #passwd                        ...

  3. ubuntu 16.10安装mysql_在Ubuntu 16.10安装mysql workbench报未安装软件包 libpng12-0错误的解决方法...

    1.安装mysql workbench,提示未安装软件包 libpng12-0 下载了MySQL Workbench 6.3.8 在安装的时候报错: sudo dpkg -i mysql-workbe ...

  4. linux 卸载edrawmax,Ubuntu 12.10安装FreeMind(Win下亿图替代品)

    Ubuntu 12.10安装FreeMind(Win下亿图替代品),安装就不用说了,软件中心就有,但是安装过后出的问题一一记下. 1.不能运行打印信息如下: root@ www.linuxidc.co ...

  5. linux 输入法错误,Ubuntu 16.04安装搜狗拼音输入法错误问题的解决方法

    一.环境介绍 Ubuntu 16.04 搜狗输入法: sogoupinyin_2.0.0.0078_amd64 二.问题表现 sudo dpkg -i sogoupinyin_2.0.0.0078_a ...

  6. gtx660 linux驱动下载,Ubuntu 16.04安装GTX660显卡驱动——解决谷歌浏览器卡死桌面的问题...

    摘要:最近尝试升级ubuntu系统,在Ubuntu的三个版本之间徘徊了半个来月:16.04 LTS 17.10 以及 18.04 LTS.真的是验证了一句话:no zuo no die.然后今天又换回 ...

  7. 火狐linux ubuntu16.04,Ubuntu 16.04 安装 Firefox 48.0 beta版

    Mozilla Firefox浏览器测试版48.0最近由Mozilla团队发布.一个显着的特点是对恶意软件的下载,WebRTC技术的改进,URL栏中结果面板的新设计,还有更多的增强的保护. Mozil ...

  8. rtl8812au linux驱动下载,Ubuntu 16.04 安装 rtl8812au系列 (DWA-182) wireless adapter driver

    刚刚开始使用Linux,一脸懵逼,命令行搞得一愣一愣的,不过熟悉了之后就好很多了.一开始从官网安装的Ubuntu 18.04 LTS,安装完之后既没有有线网.而且安装完的fresh版本,好的comma ...

  9. linux杂志软件,Ubuntu 16.04安装电子杂志制作软件 Scribus 1.5.2

    开源电子杂志制作软件 Scribus 1.5.2 最近发布下载,Scribus是一个用于Linux,FreeBSD, PC-BSD, NetBSD, OpenBSD, Solaris, OpenInd ...

最新文章

  1. 倒计时 | 7.24 阿里云 Serverless Developer Meetup 杭州站报名火热进行中!
  2. boot lvm 分区_Linux如何在线对逻辑分区扩容
  3. 艺术美的价值是什么?
  4. 江苏计算机云服务,云呐|江苏企业机房环境动环监控服务商系统智能监测
  5. git合并分支,发布代码
  6. 我的实用小软件(持续更新)
  7. centos ping 路由_centos服务器怎么ping命令
  8. CSDN 上传资源已经存在
  9. PAT甲级1012:The Best Rank (25)
  10. Svchost.exe是病毒的两种情况
  11. 个人成长:谈谈工作之余如何提高个人技术水平
  12. 怎么搜集家谱资料?四个内容两个方法,打造传世的精神财富
  13. HDU 1885 Key Task 国家压缩+搜索
  14. 号外!5G+X联创营华为云官网上线,5G 创业春天来了!
  15. 【观察】做好数据到介质的连接者,英特尔存储的创新与超越
  16. QT写小游戏详细教程
  17. 《那些年,我们一起追过的女孩》观后感
  18. 神经网络:测试集的loss不降,杂乱无章解决方法
  19. 通往全栈工程师的捷径 —— React
  20. 【PTA】jmu-ds-集合的并交差运算-一道神奇的题目

热门文章

  1. php邮件程序,PHP发送电子邮件(Email)
  2. DevOps的敏捷介绍–环保主义者
  3. 英语 -wise 后缀
  4. QT学习日记15——绘图事件
  5. 使用网络Ghost批量部署Windows Server 2008 R2
  6. C#实现AES算法对文件的加密解密
  7. Parcel: unable to marshal value 解决方法
  8. p2p软件如何穿透内网进行通信
  9. 数据结构与算法 - PHP
  10. 世界著名博物馆艺术经典(海南大学-知到)