日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

使用cygwin X server實(shí)現(xiàn)Linux遠(yuǎn)程桌面 (for windows)

 昵稱473624 2009-11-13

對于習(xí)慣使用命令行的人來說,可以使用終端的方式進(jìn)行訪問,也就是通過telnet, ssh等方法遠(yuǎn)程登錄到linux主機(jī),對其進(jìn)行訪問。至于登錄軟件,既可以使用windows自帶的命令行界面,也可以使用專門的終端軟件,例如putty, secureCRT等。其中putty是免費(fèi)軟件,而secureCRT并不是。

對于習(xí)慣使用圖形界面的人來說,更希望以圖形界面的方式來訪問linux主機(jī)。主要有以下幾種方法:

今天我主要介紹第二種方法。

有很多軟件在windows上實(shí)現(xiàn)了X server的功能,例如Xmanager,Hummingbird Exceed,cygwin X server,以及Xming X Server for Windows。前兩個都是商業(yè)軟件,需要付費(fèi)使用;cygwin和Xming是免費(fèi)軟件。本文主要介紹如何使用cygwin X實(shí)現(xiàn)Linux的遠(yuǎn)程桌面。關(guān)于Xming X server的使用請參見其主頁。

先調(diào)動一下大家的積極性,看看最終的效果圖:

[ 背景知識 ]

網(wǎng)絡(luò)上有很多關(guān)于X的背景知識,如果你想對X了解的深入一些,去網(wǎng)上搜索一下吧。

這里是王垠寫的”理解 Xwindow“,介紹了X server, X client, 窗口管理器,桌面環(huán)境相關(guān)的知識,讀一下對理解本文也有幫助。

好了,現(xiàn)在我們開始配置。

[ 安裝cygwin ]

Cygwin項目的目的是在windows主機(jī)上提供一個類UNIX的環(huán)境,網(wǎng)絡(luò)也有很多相關(guān)的資料。大家可以看一下這一篇:Cygwin使用指南,這篇文章在網(wǎng)絡(luò)上流行比較廣,作者未知,上面提供的僅是其中一個鏈接。

如果你的計算機(jī)上還沒有cygwin,首先需要安裝它。

這個過程很簡單,先到cygwin的主頁去下載setup.exe,然后使用setup.exe進(jìn)行安裝。在安裝的過程中需要選擇要安裝的組件,此時需要把X server組件選上。

這里有一個安裝指南,雖然是英文的,不過看抓圖就可以了。

選擇X server組件時,其實(shí)只需要選擇xorg-x11-base,選中它之后,其它相關(guān)組件會自動被選中。

在安裝cygwin時,記得把expect這個軟件裝上,它位于interpreters類別下面。我會在后面的章節(jié)中說明為什么要安裝這個組件。

[ 運(yùn)行cygwin X server]

在運(yùn)行X server前,先假定一下我們的組網(wǎng)。

我們假設(shè)X server運(yùn)行在一臺windows XP計算機(jī)上,此機(jī)器的IP地址是192.168.190.91。

我們的Linux主機(jī)上將運(yùn)行X client程序,它的IP地址是192.168.190.15。

在你的安裝目錄中找到c:\cygwin\usr\X11R6\bin\startxwin.bat (假設(shè)你把cygwin安裝在c:\cygwin目錄),雙擊它就會啟動X server,同時會啟動一個終端(這個終端運(yùn)行在Windows本地),效果如下圖:

現(xiàn)在,我們要允許遠(yuǎn)程的X client對X server進(jìn)行訪問,因此,在終端中輸入下面的命令,

xhost + 192.168.190.15 

接下來,我們要到X client所在的計算機(jī)上進(jìn)行配置,使用telnet或ssh登錄Linux主機(jī)(192.168.190.15),然后運(yùn)行下面的命令,

export DISPLAY=192.168.190.91:0.0
xterm &
gvim &

上面第一條命令設(shè)置DISPLAY變量,它表示X客戶端將使用192.168.190.91上的0.0來顯示自己。192.168.190.91是運(yùn)行cygwin X server的Windows計算機(jī)(它的防火墻要打開X server所監(jiān)聽的端口,通常為6000)。

后面兩條命令則在Linux主機(jī)上(192.168.190.15)啟動了兩個程序,一個是xterm,另外一個是gvim,我們發(fā)現(xiàn)這兩個程序啟動后,并沒有顯示在Linux主機(jī)上,相反,它們顯示在了windows主機(jī)上。下圖是執(zhí)行完上述命令的效果圖,我使用putty遠(yuǎn)程登錄到Linux主機(jī)上,然后執(zhí)行上述命令:

用這種方法,你可以在Linux主機(jī)上運(yùn)行任何圖形程序,并把它顯示到windows上。

如果你想把諸如KDE、GNOME這樣的桌面環(huán)境也顯示到windows上,就需要做些調(diào)整。

[ 運(yùn)行桌面環(huán)境 ]

在此我以KDE桌面為例。要把KDE桌面環(huán)境顯示到windows上的X server中,需要更改一下X server的啟動批處理。

首先備份一下c:\cygwin\usr\X11R6\bin\startxwin.bat,然后使用文本編輯器打開此文件,找到下面這行:

%RUN% XWin -multiwindow -clipboard -silent-dup-error 

去掉”-multiwindow“參數(shù):

%RUN% XWin -clipboard -silent-dup-error 

我們通常不需要啟動一個xterm窗口,因此找到下面這行:

%RUN% xterm -e /usr/bin/bash –l 

把它注釋掉:

REM %RUN% xterm -e /usr/bin/bash –l 

好了,批處理文件改完了。

回想一下上面的操作,在啟動了X server后,我們執(zhí)行了xhost命令來設(shè)置允許哪些計算機(jī)連接到X server,現(xiàn)在我們可以在配置文件中設(shè)置它。打開一個cygwin窗口,輸入下面的命令:

echo "192.168.190.15" >> /etc/X0.hosts 

上面的命令會在/etc/X0.hosts文件中加入你想允許的X client,你可以在此文件中加入你的X客戶端。因為我們使用的DISPLAY是0,所以在文件/etc/X0.hosts中增加;如果使用DISPLAY 1,則需要修改文件/etc/X1.hosts文件?,F(xiàn)在啟動X server后,192.168.190.15就被自動允許接入了。

現(xiàn)在我們再次雙擊startxwin.bat批處理,執(zhí)行后就會出現(xiàn)一個丑陋的空白窗口,這就是所謂的根窗口。之所以是空白的,是因為現(xiàn)在還沒有運(yùn)行任何窗口管理器。別急,我們使用telnet或ssh遠(yuǎn)程登錄Linux主機(jī),執(zhí)行命令:

startkde & 

哈哈~~~本文開頭所展示的KDE窗口出來了!??!現(xiàn)在你在KDE中運(yùn)行任何程序,它們都運(yùn)行在Linux主機(jī)上,卻把結(jié)果顯示在Windows主機(jī)上。

[ 創(chuàng)建快捷方式 ]

在上面的操作中,啟動X server后,需要使用telnet或ssh登錄到Linux主機(jī),才能啟動自己想要的X client程序,有沒有更簡單的方法?

現(xiàn)在我們就需要用到expect軟件了。這是一個如此有用的軟件,以至于我忍不住要在這里插一段廣告。

Expect為用戶提供一種機(jī)制,使用戶能夠自動執(zhí)行一些交互式的任務(wù)。例如,通常我們在使用telnet的時候,都需要手動輸入用戶名、密碼才能登錄。而使用Expect,我們就可以實(shí)現(xiàn)全自動的telnet交互,不需用戶干預(yù)。Expect由Don Libes開發(fā),基于TCL內(nèi)核,它的主頁在http://expect./。

廣告時間結(jié)束,我們繼續(xù)。我使用expect編寫了如下的TCL/EXPECT腳本,它可以使用ssh自動登錄到指定Linux主機(jī),然后啟動我們需要的程序。程序如下:

#! /bin/expect -f
# Change these variable to yours
set user {easwy}
set host {192.168.190.15}
set xserver {192.168.190.91}
set password {123456}
set program {startkde}
set timeout 5
set done 0
spawn ssh "$user@$host"
while {!$done} {
expect {
"*(yes/no)?*" {
# If the 1st time run ssh, it will prompt continue or not
# answer yes
exp_send "yes\n"
}
"assword*" {
# Answer password
exp_send "$password\n"
}
"\$*" {
# Exit the loop
incr done
}
"#*" {
# Exit the loop
incr done
}
timeout {
# Timeout
exp_send_user "Login timeout, please check!"
}
}
}
# Set DISPLAY environment variable
exp_send "export DISPLAY=$xserver:0\n"
# Start your program
exp_send "nohup $program &\n"
expect -regexp {\[[0-9]*\] [0-9]*}
exp_send "\n"
# Finished 

把上面的內(nèi)容保存為一個文件,例如,保存為cygwin的~/login.exp。注意:把腳本起始處的5個變量替換成你自己的,只需要替換大括號中間的內(nèi)容。使用telnet的朋友請自行修改此腳本。

下面我們再改一下c:\cygwin\usr\X11R6\bin\startxwin.bat文件,在此文件的最后增加:

REM Start your X client program
%CYGWIN_ROOT%\bin\run -p /bin expect -f ~/login.exp 

我們使用expect來執(zhí)行剛才保存的~/login.exp。

現(xiàn)在,我們右擊startxwin.bat文件,選擇“發(fā)送到桌面快捷方式”。以后,只要你雙擊此快捷方式,就能立刻在Windows上使用Linux主機(jī)上的程序了。

我們再來看一個有趣的例子。

在上圖中共開了三個終端,它們分別運(yùn)行在不同的主機(jī)上,卻都在Windows主機(jī)上進(jìn)行輸入輸出。這就是X window的魅力了,如果你愿意,你還可以把其它Windows及Linux主機(jī)上的程序顯示到這個X server中,正所謂一”橋”飛架南北,天塹變通途。

在本文完成后,經(jīng)網(wǎng)友jiachunyu介紹,才知道有一個名為XWinLogon的軟件,它也是使用cygwin的X server實(shí)現(xiàn)Linux的遠(yuǎn)程桌面。相比之下,它的安裝和使用都簡單了很多。這個軟件的主頁在:http:///projects/xwinlogon/

或者

http://www./visual-c++/xwinlogon/

有興趣可以試一下。

需要說明的是,XWinLogon中包含了部分cygwin的軟件包,如果你安裝了cygwin,則不能安裝此軟件(我沒有試過,在作者主頁這樣說明)。

[參考文檔]

原創(chuàng)文章,許可方式見頁尾,轉(zhuǎn)載請注明:轉(zhuǎn)載自Easwy的博客 [ http:///blog/ ]

     本文鏈接地址: http:///blog/archives/linux-remote-desktop-via-cygwin-x-server/

Post Footer automatically generated by wp-posturl plugin for wordpress.

Easwy 開源軟件 ,

  1. high9527
    2009年9月5日08:35 | #1

    在你的安裝目錄中找到c:\cygwin\usr\X11R6\bin\startxwin.bat (假設(shè)你把cygwin安裝在c:\cygwin目錄)

    我初學(xué),新裝的cygwin目錄下面沒有找到startxwin.bat,自然無從編輯.
    我用startX命令能進(jìn)入Xwindows
    想請教,這種情況怎么進(jìn)入kde?

  2. 2009年9月8日18:49 | #2

    @high9527
    是不是安裝cygwin時沒裝xwindow組件?
    在哪里執(zhí)行的startx?

  1. 2009年5月1日10:38 | #1
  2. 2009年5月8日13:14 | #2


    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多