linux服务之vnc和x2go

三种方式连接linux桌面

1.传统的vnc  linux桌面上安装vncserver  windows桌面上安装vncviewer

2.x2go  在linux桌面上安装x2goserver与x2goserver-session即可,也不需要启动什么守护,然后在win或linux下连接即可。

3.putty  linux桌面上启用ssh的x转发功能,windows桌面用putty+xming

先通过xlanuch启动xming来等待xclient的连接

再用putty(启用了x11转发功能,打上勾就可以了,不需要其它操作)去连接ssh服务器,然后在putty命令行下输入---firefox,gedit,nautilus等linux桌面下的application,就会在xming的窗口中打开,达到将远程app在本地打开的目的。

linux服务之vnc和x2go_第1张图片

 

 

ubuntu 14.04 lts 开启远程桌面的最简单办法

这个办法必须先让用户在控制台登录进去,远程才能连接。

第一步设置桌面分享如下

linux服务之vnc和x2go_第2张图片

 

第二步:安装dconf-editor

sudo apt-get install dconf-editor

$dconf-editor 

依次展开org->gnome->desktop->remote-access 将“requre-encryption”去掉。否则连接时会报下面的错误

linux服务之vnc和x2go_第3张图片

 

原理

Linux/Unix的X Window具有网络透明性。X Window系统里有一个统一的Server来负责各个程序与显示器、键盘和鼠标等输入输出设备的交互,每个有GUI的应用程序都通过网络协议与 Server进行交互。所以对于任何一个应用程序,本地运行和远程运行的差别仅仅是X Server的地址不同,别的没有差别。所以在Windows运行一个X Server,就可以很方便的远程运行有GUI的Linux应用了。同时,OpenSSH具有X转发功能,可以将Linux主机的X程序通过SSH的管道 转发给客户端。于是,通过PuTTY到主机,再将接收到的由主机转发来的X程序的交互交给在本地Windows系统下运行的X Server来管理和显示,原则上说,这就可以实现远程使用Linux的GUI程序。

需要在本地Windows上运行一个X Server。选择有很多:
Cygwin下的X Server恐怕是最著名的,但是为了这么一个小小的事情去安装一个“相对巨大”的Cygwin,似乎有些夸张;
除了Cygwin,还有两个著名的商业软件可以选用,Xwin32和Xmanager,不过,虽然Xmanager可以试用,但是终究还是商业软件;
还有一个选择,就是这里要讲的,开源软件Xming。Xming是一个配置简单而功能强大的开源X Server,可以运行在M$的XP/2003/Vista操作系统下。
Xming 的新版本停止采用 GPL 授权。但是 SourceForge 的版本维持 GPL。Xming 新版本授权主要在 "redistribution" 加上限制。为此,Blue GNU 网站 与 Xming 作者 有一番讨论,最终确认Xming 新版的授权方式并没有违法。
Xming与putty一起实现Linux X11在本地显示的方法如下:
putty上设置:Connection->SSH->X11->Enable X11 forwarding
然后在本地 Windows 系统上启动一个 Xwindow 服务,如 Xming. 这时就可以远程输入命令启动图形界面的程序了,启动后程序的界面将显示在本地的 Windows 桌面上。

第一次运行时使用开始菜单里面的XLaunch来启动,产生一个初始的配置文件。对于简单的使用来说,不需要任何特殊的配置,一切使用默认即可。Xming的具体配置和使用可以参考Xming的Manual。
需要记住的是下图中标示出的“Display number”中的数字,此处使用默认的0。
选择“Connection-SSh-X11”,选中“Enable X11forwarding”,“X display location”中填上上一步中“Display number”中的数字(此处就是“localhost:0”)。

 

[root@rac02 .vnc]# rpm -qa|grep vnc
vnc-server-4.1.2-14.el5_6.6

yum install tigervnc-server
2.启动VNC服务

使用vncserver命令启动VNC服务,命令格式为“vncserver :桌面号”,其中“桌面号”用“数字”的方式表示,每个用户连个需要占用1个桌面
    启动编号为1的桌面示例如下
    [root@testdb ~]# vncserver :1
    You will require a password to access your desktops.
    Password:
    Verify:
    xauth:  creating new authority file /root/.Xauthority
    New 'testdb:1 (root)' desktop is testdb:1
    Creating default startup script. /root/.vnc/xstartup
    Starting applications specified in /root/.vnc/xstartup
    Log file is /root/.vnc/testdb:1.log
    以上命令执行的过程中,因为是第一次执行,需要输入密码,这个密码被加密保存在用户主目录下的.vnc子目录(/root/.vnc/passwd)中;同时在用户主目录下的.vnc子目录中为用户自动建立xstartup配置文件(/root/.vnc/xstartup),在每次启动VND服务时,都会读取该文件中的配置信息。
    BTW:/root/.vnc/目录下还有一个“testdb:1.pid”文件,这个文件记录着启动VNC后对应后天操作系统的进程号,用于停止VNC服务时准确定位进程号。
3.VNC服务使用的端口号与桌面号的关系

VNC服务使用的端口号与桌面号相关,VNC使用TCP端口从5900开始,对应关系如下:  
桌面号为“1”  ---- 端口号为5901
桌面号为“2”  ---- 端口号为5902
桌面号为“3”  ---- 端口号为5903
    ……
    基于Java的VNC客户程序Web服务TCP端口从5800开始,也是与桌面号相关,对应关系如下
    桌面号为“1”  ---- 端口号为5801
    桌面号为“2”  ---- 端口号为5802
    桌面号为“3”  ---- 端口号为5803
    ……
    基于上面的介绍,如果Linux开启了防火墙功能,就需要手工开启相应的端口,以开启桌面号为“1”相应的端口为例,命令如下
    [root@testdb ~]# iptables -I INPUT -p tcp --dport 5901 -j ACCEPT
    [root@testdb ~]# iptables -I INPUT -p tcp --dport 5801 -j ACCEPT

4.测试VNC服务
方法是使用Web浏览器(如Firefox,IE,Safari)登陆测试,操作流程如下
地址栏输入http://144.194.192.183:5801/ --> 出现VNC viewer for Java(此工具是使用Java编写的VNC客户端程序)界面,同时跳出VNC viewer对话框,在Server处输入“144.194.192.183:1”点击“OK” --> Password输入登陆密码 --> 点击“OK”登陆到X-Window图形桌面环境 --> 测试成功
(注:VNC viewer for Java需要JRE支持,如果页面无法显示,表示没有安装JRE,可以到http://java.sun.com/javase/downloads/index_jdk5.jsp这里下载最新的JRE进行安装)

5.配置VNC图形桌面环境为GNOME桌面环境
    如果您是按照我的上面方法进行的配置的,登陆到桌面后效果是非常简单的,只有一个Shell可供使用,这是为什么呢?怎么才能看到可爱并且美丽的KDE或GNOME桌面环境呢?回答如下
    之所以那么的难看,是因为VNC服务默认使用的是twm图形桌面环境的,可以在VNC的配置文件xstartup中对其进行修改,先看一下这个配置文件
[root@testdb ~]# cat /root/.vnc/xstartup
    #!/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 &
将这个xstartup文件的最后一行修改为“gnome-session &”,再重新启动vncserver服务后就可以登陆到GNOME桌面环境
    重新启动vncserver服务的方法:
[root@testdb ~]# vncserver -kill :1
[root@testdb ~]# vncserver :1
注:你以什么身份启动的vncserver :1,那么你登陆图形界面后就是以什么身份登陆,
安装oracle的时候,需要你oracle身份安装,所以你应该以oracle启动vncserver:1

修改分辨率  【VNC】修改VNC分辨率大小 

vi /etc/sysconfig/vncservers

VNCSERVERS="1:root 2:oracle"
VNCSERVERARGS[1]="-geometry 1024x768"
VNCSERVERARGS[2]="-geometry 1024x768"

上面好像无效,直接修改下面的/usr/bin/vncserver脚本生效。

由于系统自带的VNC默认分辨绿为1024*768,导致部分地区无法显示。经试验,修改如下内容可以调整分辨率:
1、which vncserver 得到VNC Server运行脚本所在位置。
RHEL5默认为:/usr/bin/vncserver
2、使用vi打开vncserver
vi /usr/bin/vncserver
3、查找到默认的分辨率:1024X768,然后进行修改。该行在注释结束的第一段参数部分。根据实际使用显示器的分辨率,修改该参数。
4、修改完vncserver后,重新执行vncserver时即以新的分辨率开始。
5、验证:ps -ef | grep vnc,可以看到所显示的分辨率参数为修改后的参数。

vncserver -geometry 800x600 :1

vncserver -geometry 1024x768 :2

报错:

Starting VNC server: 1:root xauth: (stdin):1: bad display name "host144:1" in "add" command (出现问题的地方,其中“host144”为主机名,下面的设置要与这里保持一致。)

[root@host144 .vnc]# vi /etc/hosts #用vi文本编辑器打开该文件
127.0.0.1 host144 localhost.localdomain localhost

#服务器ip 主机名 后面的可不设(中间用逗号隔开,完成后保存即可。)

vnc 关闭窗口与注销用户

别注销;要不重返无法操作;得重启VNC。。

export DISPLAY=:0.0的解释

在Linux/Unix类操作系统上, DISPLAY用来设置将图形显示到何处. 直接登陆图形界面或者登陆命令行界面后使用startx启动图形, DISPLAY环境变量将自动设置为:0:0, 此时可以打开终端, 输出图形程序的名称(比如xclock)来启动程序, 图形将显示在本地窗口上, 在终端上输入printenv查看当前环境变量, 输出结果中有如下内容:
DISPLAY=:0.0
DISPLAY 环境变量格式如下host:NumA.NumB,
host指Xserver所在的主机主机名或者ip地址, 图形将显示在这一机器上, 可以是启动了图形界面的Linux/Unix机器, 也可以是安装了Exceed, X-Deep/32等Windows平台运行的Xserver的Windows机器.
如果Host为空, 则表示Xserver运行于本机, 并且图形程序(Xclient)使用unix socket方式连接到Xserver,而不是TCP方式.
使用TCP方式连接时, NumA为连接的端口减去6000的值, 如果NumA为0, 则表示连接到6000端口;
使用unix socket方式连接时则表示连接的unix socket的路径, 如果为0, 则表示连接到/tmp/.X11-unix/X0
NumB则几乎总是0.
如果使用su username或者su - username切换到别的用户, 并且使用命令
export DISPLAY=:0.0
设置DISPLAY环境变量, 运行图形程序(如xclock)时会收到如下错误:
Xlib: connection to ":0.0"refused by server
Xlib: No protocol specified
Error: Can't open display: :0.0
这是因为Xserver默认情况下不允许别的用户的图形程序的图形显示在当前屏幕上. 如果需要别的用户的图形显示在当前屏幕上, 则应以当前登陆的用户, 也就是切换身份前的用户执行如下命令
xhost +
这个命令将允许别的用户启动的图形程序将图形显示在当前屏幕上.

在2台Linux机器之间, 如果设置服务器端配置文件/etc/ssh/sshd_config中包含:
X11Forwarding no
客户端配置文件/etc/ssh/ssh_config包含:
ForwardX11 yes
则从客户端ssh到服务器端后会自动设置DISPLAY环境变量, 允许在服务器端执行的图形程序将图形显示在客户端上. 在服务器上查看环境变量显示如下(这个结果不同的时候并不相同)
DISPLAY=localhost:10.0
在客户机上用netstat -lnp可以看到有程序监听了6010端口
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 4827/1
如果希望允许远程机器上的图形程序将图形显示在本地机器的Xserver上, 除了要设置远端机器的DISPLAY环境变量以外, 还需要设置本地机器的Xserver监听相应的TCP端口. 而现在的Linux系统出于安全的考虑, 默认情况下不再监听TCP端口. 可通过修改/etc/X11/xinit/xserverrc文件, 将
exec /usr/bin/X11/X -dpi 100 -nolistentcp
修改为
exec /usr/bin/X11/X -dpi 100
允许在直接使用startx启动图形时启动对TCP端口的监听.
修改/etc/kde3/kdm/kdmrc, 将
ServerArgsLocal=-nolisten tcp
修改为
ServerArgsLocal=
允许kdm作为显示管理器时, 启动会话时监听相应的TCP端口.
修改/etc/gdm/gdm.conf, 在[Security]一节增加
DisallowTCP=false
或者在登陆窗口选择"Options" -> "Configure Login Manager..."的Security页面, 取消"DenyTCP connections to Xserver", 允许gdm作为显示管理器时, 启动会话时监听相应的TCP端口.

 

chkconfig vncserver --level 3456 on

设置VNCserver启动变量:
为了使VNCserver在每次启动时保持不变的端口号(5901)
在/etc/rc.d/rc.local文件中添加命令:
rm -f /tmp/.X11-unix/X*
rm -f /.VNC/*.pid
rm -f /.VNC/*.log
这样,每次启机,系统会先把上次非正常关
机时留下的临时文件删除。

 

 

 

X2Go

1.安装相关软件包

 

两台linux桌面机上,一个安装x2goclient,一个安装x2goserver,两者都需要第三方源epel
[root@oracle3A Desktop]# yum install epel-release
[root@oracle3A Desktop]# yum install x2goclient
Installing:
 x2goclient         x86_64         4.0.1.4-1.el6             epel         1.0 M
Installing for dependencies:
 libXcomp           x86_64         3.5.0.29-1.el6            epel         306 k
 libXpm             x86_64         3.5.10-2.el6              base          51 k
 libssh             x86_64         0.5.5-3.el6               epel         121 k
 nx-libs            x86_64         3.5.0.29-1.el6            epel          19 k
 nxproxy            x86_64         3.5.0.29-1.el6            epel          10 k


[root@oracle3A Desktop]# yum install x2goserver x2goserver-xsession

Installing:
 x2goserver               x86_64       4.0.1.19-1.el6          epel        98 k
 x2goserver-xsession       x86_64       4.0.1.19-1.el6         epel        12 k

Installing for dependencies:
 fuse-sshfs               x86_64       2.4-1.el6               epel        52 k
 libNX_X11                x86_64       3.5.0.29-1.el6          epel       500 k
 libNX_Xcomposite         x86_64       3.5.0.29-1.el6          epel        10 k
 libNX_Xdamage            x86_64       3.5.0.29-1.el6          epel       9.9 k
 libNX_Xdmcp              x86_64       3.5.0.29-1.el6          epel        15 k
 libNX_Xext               x86_64       3.5.0.29-1.el6          epel        29 k
 libNX_Xfixes             x86_64       3.5.0.29-1.el6          epel        13 k
 libNX_Xinerama           x86_64       3.5.0.29-1.el6          epel        11 k
 libNX_Xpm                x86_64       3.5.0.29-1.el6          epel        37 k
 libNX_Xrandr             x86_64       3.5.0.29-1.el6          epel        12 k
 libNX_Xrender            x86_64       3.5.0.29-1.el6          epel        22 k
 libNX_Xtst               x86_64       3.5.0.29-1.el6          epel        15 k
 libXcomp                 x86_64       3.5.0.29-1.el6          epel       306 k
 libXcompext              x86_64       3.5.0.29-1.el6          epel        36 k
 libXcompshad             x86_64       3.5.0.29-1.el6          epel        34 k
 nx-libs                  x86_64       3.5.0.29-1.el6          epel        19 k
 nxagent                  x86_64       3.5.0.29-1.el6          epel       1.5 M
 perl-Capture-Tiny        noarch       0.23-1.el6              epel        31 k
 perl-Config-Simple       noarch       4.59-5.1.el6            base        34 k
 perl-DBD-SQLite          x86_64       1.27-3.el6              base        83 k
 perl-DBI                 x86_64       1.609-4.el6             base       705 k
 perl-File-BaseDir        noarch       0.03-13.el6             epel        13 k
 perl-File-Which          noarch       1.09-2.el6              base        18 k
 pwgen                    x86_64       2.07-1.el6              epel        23 k
 x2goagent                x86_64       3.5.0.29-1.el6          epel        16 k

 

 

2.连接  不需要在服务端运行什么守护进程,

windows下面安装一个客户端即可。http://code.x2go.org/releases/binary-win32/x2goclient/releases/4.0.3.2-20150329/x2goclient-4.0.3.2-20150329-setup.exe

linux下两种方式:命令行或图标,输入ssh的用户名与密码

[root@oracle5A Desktop]# x2goclient 
x2go-INFO-1> "Starting x2goclient..."
x2go-WARNING-1> "Can't load translator: :/x2goclient_en_us"
x2go-WARNING-2> "Can't load translator: :/qt_en_US"
x2go-INFO-3> "Started  x2goclient."
x2go-INFO-8> "Starting connection to server: 192.168.2.223:22"
x2go-INFO-6> "Closing x2goclient..."
x2go-INFO-7> "Closed  x2goclient."

linux服务之vnc和x2go_第4张图片

 

linux服务之vnc和x2go_第5张图片 

 

 

ubuntu14.04 LTS vnc lxde 分辨率

更改root密码,不是加signle,而是加入quiet splash rw init=/bin/bash,然后按F10即可。

 

apt-get install vnc4server
ufw disable

 

vi /home/deravo/.vnc/xstartup

 

x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &

 

#lxterminal &
/usr/bin/lxsession -s LXDE &

 

vncserver :1 -geometry 1024x768 -depth 16 -pixelformat rgb565

 

ps -ef|grep vnc
lsof -i :5901

 

其中Vino-Server是Ubuntu自带的远程桌面服务器,也就是在系统(System) —> 首选项(Preferences) —> 远程桌面(Remote Desktop)下,可以很容易开启,然后就可以使用VNC Viewer进行远程桌面连接。具体开通办法,可以参见《Ubuntu下开启远程桌面的方法》。不过,这种自带的Vino-Server方式有一个最显著的缺点:那就是当你重启机器之后,必须首先到远程服务器那边登录机器,进入系统(相当于创建了一个Session)之后,才能在本地使用远程桌面连接这个远程服务器。这个缺点导致Vino-Server有时极为不方便。

那么,我们如果要解决这个问题,可以通过安装VNC Server来解决。在Ubuntu下安装VNCServer的过程非常简单:

(1)安装VNCServer
使用ssh登录Ubuntu,执行命令:sudo apt-get install vnc4server

 

 

 

[root@kvm2 Downloads]# cat /etc/yum.repos.d/remmina.repo 
[remm]
name=remm
baseurl=http://li.nux.ro/download/nux/dextop/el7/x86_64/
enabled=1


[root@kvm2 Downloads]# yum install libssh
[root@kvm2 Downloads]# yum --disablerepo=\* --enablerepo=remm install remmina


  450  yum --disablerepo=\* --enablerepo=remm install remmina
  451  vi /etc/yum.repos.d/remmina.repo 
  452  vi /etc/yum.repos.d/remmina.repo 
  453  rpm -qpi /var/cache/yum/x86_64/7/remm/packages/remmina-1.0.0-8.el7.nux.x86_64.rpm 
  454  rpm -ivh /var/cache/yum/x86_64/7/remm/packages/remmina-1.0.0-8.el7.nux.x86_64.rpm
  455  rpm -ivh /var/cache/yum/x86_64/7/remm/packages/remmina-*
  456  remmina 
  457  yum --disablerepo=\* --enablerepo=remm install remmina-plugins*
  458  remmina 
  459  yum install freerdp
  460  yum --disablerepo=\* --enablerepo=remm install remmina-plugins-rdp
  461  rpm -ivh /var/cache/yum/x86_64/7/remm/packages/remmina-plugins-rdp-1.0.0-8.el7.nux.x86_64.rpm 
  462  remmina 

 

转载于:https://www.cnblogs.com/createyuan/p/4060115.html

你可能感兴趣的:(操作系统,运维,java)