成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用 VNC 實現(xiàn)多用戶登錄

運維 系統(tǒng)運維
Virtual Network Computing (VNC) 是一種提供計算機遠程訪問的流行工具。常規(guī)的 VNC 配置是針對單用戶工作臺而進行優(yōu)化的,可登錄到 VNC 端口直接訪問單一用戶的桌面。然而,這一配置在多用戶計算機上使用不太合適。幸運的是,我們有一個替代方案可以解決這個問題。

Virtual Network Computing (VNC) 是一種提供計算機遠程訪問的流行工具。常規(guī)的 VNC 配置是針對單用戶工作臺而進行優(yōu)化的,可登錄到 VNC 端口直接訪問單一用戶的桌面。然而,這一配置在多用戶計算機上使用不太合適。幸運的是,我們有一個替代方案。通過將 VNC 鏈接到一臺 Linux 計算機的普通 X Display Manager Control Protocol (XDMCP) 服務器,訪問 VNC 端口就能夠讓用戶提供其用戶名和密碼,進而能夠使單個 VNC 服務器實例處理多個用戶登錄。

VNC 和 X 服務器架構

Linux使用 X Window System(簡稱 X)作為其圖形用戶接口 (GUI)。X 從多個方面來看是一個不尋常的 GUI,一個方面是它本身支持網(wǎng)絡。X 服務器 實際上是一個網(wǎng)絡服務器程序。網(wǎng)絡服務器程序提供給客戶端程序對本地資源的訪問,對于 X 服務器也是如此。奇異之處在于,對于 X 服務器來說 “本地資源” 是用戶使用的顯示器、鍵盤和鼠標。在大部分常見配置中,X 客戶端程序作為服務器運行在同一臺計算機上。因此,LibreOffice、GNU Image Manipulation Program (GIMP) 或其他程序是使用 X 的網(wǎng)絡協(xié)議接受用戶輸入并在同一臺計算機上為用戶顯示輸出的 X 客戶端。

不過在通過網(wǎng)絡使用 X 時,用戶位于 X 服務器計算機,而 X 的客戶端是用戶希望在另一臺計算機上運行的程序。這一配置需要第二個網(wǎng)絡協(xié)議來發(fā)起連接。這第二個協(xié)議可以是 telnet、Secure Shell (SSH) 或 X Display Manager Control Protocol (XDMCP)。用于這一登錄協(xié)議的服務器在 X 客戶端計算機上運行,而遠程登錄客戶端在 X 服務器計算機上運行。遠程登錄服務器啟動 X 客戶端,后者轉而聯(lián)系 X 服務器。圖 1 描述了這一關系。虛線箭頭表示會話啟動。(對于 XDMCP,XDMCP 客戶端構建在 X 服務器程序中。)


圖 1. X 遠程訪問需要在兩臺計算機上裝有一個客戶端和一個服務器
圖表顯示 X 客戶端與 X 服務器之間的關系 
 

這種設置在很多本地網(wǎng)絡上都很有效,但它有缺陷。例如,該配置需要雙向網(wǎng)絡協(xié)議啟動,而這是無法通過一些防火墻或網(wǎng)絡地址轉換 (NAT) 路由器實現(xiàn)的。(SSH 可以利用通道進行 X 會話,消除這一需求。)此外,盡管 X 服務器可用于大部分平臺,但它們通常不安裝在運行 Windows® 的計算機上。出于這些和其他原因,許多站點傾向于使用另一個協(xié)議 Remote Frame Buffer (RFB),該協(xié)議在 Virtual Network Computing (VNC) 系列程序中均有實現(xiàn)。

VNC 是一個跨平臺的工具,可從任何類型的客戶端提供對 Linux、UNIX®、Mac OS X、Windows 和其他系統(tǒng)的遠程訪問。使用 VNC,用戶可以從客戶端計算機訪問一臺遠程服務器計算機。在 Linux 上,VNC 服務器要么將本地 X 服務器的界面內容鏡像到遠程計算機,要么包含其自身的 X 服務器,該服務器可獨立于管理本地界面的服務器運行。結果類似于 圖 2 所示。同樣,虛線箭頭表示會話啟動。這一配置消除了反向進行網(wǎng)絡連接的需求,而且由于 VNC 客戶端和服務器存在于如此多的操作系統(tǒng)中,用戶可以利用單一客戶端程序訪問任何服務器。


圖 2. 一個 VNC 服務器包括一個可與本地 X 客戶端程序通信的 X 服務器
圖表顯示 VNC 服務器如何發(fā)送 X 服務器內容給客戶端 
 

VNC 的缺點在于,RFB 身份驗證基于密碼,而不需要用戶名。因此,每個用戶必須啟動一個獨立的 VNC 服務器會話,并通過指定正確的端口號連接到 VNC 實例。這一要求在單用戶系統(tǒng)上可能還能接受,但是在多用戶計算機上則極其不合適。

要解決這一問題,您可以將兩種方法銜接起來。您可以重新配置您的本地 XDMCP 服務器以幫助集成在 VNC 中的 X 服務器提供缺少的多用戶身份驗證(最終的配置類似于 圖 3 所示)。虛線箭頭表示會話啟動。現(xiàn)在,當遠程 VNC 用戶聯(lián)系 VNC 服務器計算機時,他們能夠輸入其用戶名和密碼來訪問其自己惟一的 VNC 會話,因此計算機可以處理盡可能多的用戶。


圖 3. 將 XDMCP 添加到 VNC 配置能夠提高靈活性
圖表顯示將 XDMCP 添加到 VNC 配置如何能夠提高靈活性 #p#

配置 VNC 服務器

有多種啟動 VNC 的方法存在,包括使用腳本、使用桌面工具將 VNC 鏈接到您的桌面環(huán)境,以及使用 xinetd 監(jiān)聽 VNC 連接。最后這一種方法就是這里要介紹,因為它能夠讓您啟動 VNC,以便它可以使用您的 XDMCP 服務器。在詳細介紹如何配置 VNC 以通過xinetd 來啟動之前,您必須選擇一個 VNC 服務器。

選擇 VNC 服務器

有若干 VNC 服務器程序可用。(參考資料 提供了其中一些服務器程序的鏈接。)一些更加流行的服務器程序包括 TightVNC、TigerVNC 和 RealVNC。本文以 TightVNC 為例。遺憾的是,配置細節(jié)隨服務器以及發(fā)行版的不同而不同,因此您可能需要針對您的軟件來調整這里所提供的使用說明。

安裝 xinetd

許多發(fā)行版默認安裝 xinetd 超級服務器,但一些發(fā)行版沒有安裝此服務器。由于這里所描述的方法使用的是 xinetd,所以如果沒有安裝的話,您應當安裝 xinetd。在大部分發(fā)行版上,您可以使用軟件包系統(tǒng)安裝 xinetd,比如在基于 Debian 的發(fā)行版上使用 apt-get install xinetd,或者在 openSUSE 上使用 zypper install xinetd。

您可能還需要配置 xinetd 來進行運行。您通常可以使用其 System V (SysV) 啟動腳本,只需運行一次:

 

  1.   # /etc/init.d/xinetd start 

 

配置 xinetd 以使它在計算機啟動時自動運行,這需要對您的發(fā)行版啟動腳本方法有一定了解。通常,您可以使用一個實用工具,比如 chkconfig(在 Fedora、openSUSE 和相關發(fā)行版中使用),update-rc.d(在 Debian 和相關發(fā)行版中使用)或者 rc-update(在 Gentoo 中使用),來執(zhí)行這項工作,如下所示:

 

  1.   # chkconfig xinetd on  
  2.   # update-rc.d xinetd enable  
  3.   # rc-update add xinetd default 

 

僅輸入這些命令中的其中一個,或者找到您發(fā)行版相對應的命令。

注意,如果沒有配置任何服務的話,xinetd 可能拒絕啟動。因此,在您還未配置 xinetd 來管理您的 VNC 服務器之前,您可能要推遲啟動。

配置 xinetd

應當由 xinetd 管理的服務器會將配置文件放在 /etc/xinetd.d 目錄中。因此,要配置 xinetd 來處理 VNC,您應當創(chuàng)建或編輯一個名稱類似 /etc/xinetd.d/vnc 的文件。(在某些發(fā)行版上,比如 openSUSE,VNC 服務器包會安裝這樣的一個文件。) 清單 1 提供了一個示例。
清單 1. xinetd 的一個 VNC 配置示例

  1.   service vnc  
  2. {   
  3.   disable     = no 
  4.   socket_type = stream 
  5.   protocol    = tcp 
  6.   wait        = no 
  7.   user        = nobody 
  8.   server      = /usr/bin/Xvnc  
  9.   server_args = -inetd -once -query localhost -geometry 1024x768 -depth 16  
  10.   type        = UNLISTED 
  11.   port        = 5900 
  12.       } 

該條目設置多個 xinetd 選項,其中大多數(shù)選項應當保持原樣。您需要調整的那些選項包括:

  • service。您可以在多個端口上運行 VNC,其中每個端口都有不同的選項,但是如果您這么做,您應當針對每一個端口在清單 1 中的第一行為 VNC 提供一個不同的服務名稱。
  • server。您應當更改該條目以指向您 VNC 服務器的主要二進制文件,通常名為 Xvnc。
  • server_args。幾乎可以肯定您會更改其中的一些選項,如前所述。
  • port。VNC 使用編號為 5900 及以上的端口。您可以在具有不同選項的不同端口上運行服務器。如果這么做,您應當分配給每個實例其自己的端口號。

xinetd 配置最棘手的部分是設置服務器參數(shù)。您可以使用 清單 1 中的參數(shù)作為模型,不過您可能想要更改其中一些參數(shù):

  • -query localhost。該選項告訴 VNC X 服務器查詢 localhost 系統(tǒng)以便進行 XDMCP 身份驗證。如果您想使用一臺計算機作為中繼來訪問另一臺計算機上的程序,您可以更改它。
  • -geometry 1024x768。您可以使用該選項設置 VNC 會話的虛擬分辨率。注意,該分辨率不需要類同于在服務器計算機上運行的常規(guī) X 服務器的分辨率。您可能想要創(chuàng)建以不同分辨率運行的多個條目,以便讓用戶使用其本地系統(tǒng)便于應用的任何分辨率登錄到 VNC 服務器。
  • -depth 16。該選項設置顏色深度。較低的值能夠產(chǎn)生較快的顯示更新,但是高色彩桌面環(huán)境會因顏色工件而受到折損。有效的值介于 2 到 32 之間。

還有許多其他選項,一些隨 VNC 服務器的不同而不同。查詢您的 VNC 服務器的文檔,了解更多內容。#p#

配置 XDMCP 服務器

大部分 Linux 發(fā)行版配置其 XDMCP 服務,主要是為了管理本地顯示。為了提供遠程訪問,您必須重新配置您的 XDMCP 服務器,以接受在同一臺計算機上運行的 VNC 服務器的請求。具體細節(jié)因 XDMCP 服務器而異。Linux 上最常用的三個 XDMCP 服務器是 GNOME Display Manager (GDM)、Light Display Manager (LightDM) 和 KDE Display Manager (KDM)。其他 XDMCP 服務器,比如 XDM,需要接受不同于此處所描述的調整。不管怎么,在重新配置您的 XDMCP 服務器之后,您需要重啟它。

編輯 XDMCP 配置文件

如果您不確定您的系統(tǒng)使用哪個 XDMCP 服務器,那么您可以通過搜索字符串 dm 的進程清單來確認它,如下所示:

  1.   $ ps ax | grep dm  
  2.     929 ?        Ss     0:00 /usr/bin/kdm  
  3.     962 tty7     Ss+    0:19 /usr/bin/Xorg -br :0 vt7 -nolisten tcp -auth \  
  4.                              /var/lib/xdm/authdir/authfiles/A:0-pp4shb  
  5.      30157 pts/3    S+     0:00 grep --color=auto dm 

該輸出的第一行表明 KDM 正在運行,因此您需要該服務器的配置文件,以便讓 VNC 能夠使用 XDMCP。大部分 XDMCP 程序均有遵循類似格式的配置文件。它們在方括號中包含根據(jù)分段名稱確認的分段,比如 [xdmcp]。分段名稱后面的行使用等號設置選項,比如enable=true。表 1 總結了在幾個常見的 Linux XDMCP 服務器上啟用 XDMCP 所必須設置的配置文件名稱、分段名稱和選項。

表 1. 為各個 XDMCP 服務器的 VNC 啟用 XDMCP 支持選項


您可能會在您的配置文件中找到 XDMCP 分段,或者它也可能完全不存在。如果存在,它可能顯式地禁用 XMDCP 支持,包含注釋掉的選項,或者為空。不管文件的原始狀態(tài)是什么,您會想要確保存在 XDMCP 分段,并且該支持是啟用的。例如,看一下用于啟用 XDMCP 的一個 KDM 配置:

  1.   [Xdmcp]  
  2.   Enable=true 

 

一些發(fā)行版啟用額外的安全措施,對此您可能需要放寬限制。其中一個安全措施就是防火墻。防火墻腳本往往是特定于發(fā)行版的,因此請查詢您的系統(tǒng)文檔,了解如何修改您的防火墻。您應當確保 localhost 能夠訪問端口 177,而且您的 VNC 客戶端能夠訪問端口 5900(或者您為 VNC 使用的任何其他端口)。

OpenSUSE 使用一個額外的配置文件來控制某些類型的訪問,包括 XDMCP 訪問:/etc/sysconfig/displaymanager。在文本編輯器中打開該文件,并搜索下面一行:

  1. DISPLAYMANAGER_REMOTE_ACCESS="no" 


 將該選項改為 "yes"。如果將其保留為 "no",那么在您連接到 VNC 服務器時,則不會顯示 XDMCP 服務器的登錄提示。該更改在大部分發(fā)行版上都不是 必需啟用的:只有 openSUSE 使用該文件。

重啟 XDMCP 服務器

將 XDMCP 服務器配置為接受遠程登錄之后,您必須重啟它。在通過 SysV init 文件啟動 X 的發(fā)行版上,比如 Debian 和 Gentoo,您可以傳遞給它 restart 選項:

  1.   # /etc/init.d/gdm restart 

 

如果您的系統(tǒng)(比如 Fedora 和 openSUSE)使用運行級別編號啟動 X,您就需要切換到一個文本模式運行級別(通常為 3),然后切換回 GUI 運行級別(通常為 5):

  1.   # telinit 3  
  2.   # telinit 5  


 要注意,不管是哪一種方法都會關閉 X,因此在繼續(xù)之前確保保存了 X 會話中所有打開的作業(yè)。

測試和調試配置

此時,您應當能夠使用 VNC 客戶端從一臺遠程計算機登錄了。例如,大部分 Linux 發(fā)行版都提供一個名為 vncviewer 的命令;您可以輸入:

  1.   vncviewer remotename  

. . . 通過 VNC 登錄到 remotename。當 VNC 經(jīng)過配置且正常工作時,結果類似于 圖 4 所示。如果您在不同端口上配置了多個 VNC 會話,您可以指定 VNC 會話編號,方法就是將其作為主機名的一部分傳遞,如下所示:

 

  1. vncviewer remotename:3 

. . . 登錄到會話 3(在端口 5903 上)。

圖 4. 當配置為使用 XDMCP 時,VNC 提供一個傳統(tǒng)的 Linux 登錄提示
VNC 中一個傳統(tǒng) Linux 登錄提示的屏幕截圖 
 

如果在執(zhí)行該測試時您沒有看到一個 XDMCP 登錄界面,那么就需要進行一些調試。要檢查的內容包括:

  • 如果 vncviewer 報告連接被拒絕,這很可能意味著超級服務器沒有在 VNC 服務器計算機上得到適當?shù)呐渲谩z查您的 xinetd配置,嘗試重啟超級服務器。也有可能是防火墻阻止對 VNC 服務器計算機的訪問。
  • 如果 VNC 客戶端啟動并連接到了服務器,但是您所看到的只是一個灰色屏幕以及一個可隨處移動的光標,問題可能出在 XDMCP 服務器配置上。檢查之前描述的設置,并重新啟動 XDMCP 服務器。
  • 一個通用的故障排除方法就是檢查您的日志文件。您可能需要搜索 /var/log 中的所有日志文件,查看是否引用到 xinetd、您的 XDMCP 服務器和您的 VNC 服務器。#p#

VNC 安全隱患

RFB 不是一個安全協(xié)議;大多數(shù) VNC 客戶端和服務器不對它們的數(shù)據(jù)進行加密。(雖然 VNC 對其自己的密碼進行加密,但是這里描述的方法不使用這些密碼。)要對部署 VMC 的地點和方式十分謹慎。如果您希望在一個不安全的網(wǎng)絡上使用 VNC,您有三個選擇:

  • 使用一個虛擬專用網(wǎng)絡 (VPN)。
  • 通過 SSH 通道傳輸協(xié)議。
  • 使用一個支持加密的 VNC 變體,比如 TigerVNC,它啟用傳輸層安全加密。

實現(xiàn)本文所描述的 VNC 登錄會至少開啟兩個通向外界的端口(VNC 端口和 XDMCP 端口)。您可能希望使用防火墻規(guī)則同時限制這兩個端口,以最大限度地降低濫用的風險。注意,XDMCP 端口(UDP 端口 177)僅需要向 localhost 開放,因此其防火墻規(guī)則會相當嚴格。

結束語

總的來講,鏈接 VNC 和 XDMCP 是支持通過遠程 GUI 登錄到多用戶 Linux 計算機的一個非常有用的技術。該方法比在跨平臺環(huán)境中直接使用 XDMCP 或者在防火墻或 NAT 問題難以解決時使用 XDMCP 更有優(yōu)勢。它比多用戶計算機上更加常見的直接 VNC 方法更有益。如果您使用該方法,一定要考慮安全性問題。請準備好設置防火墻規(guī)則來限制不需要的外部訪問,并且如果您的傳輸經(jīng)由不可信賴的網(wǎng)絡,請務必使用加密功能。

 

責任編輯:黃丹 來源: developerWorks
相關推薦

2012-05-24 10:08:51

ibmdw

2010-07-28 17:31:46

2012-08-03 14:59:09

谷歌Android

2010-05-21 09:09:00

2023-02-15 08:40:46

2014-07-25 10:24:34

802.11acWi-FiMIMO

2009-12-17 15:01:21

Linux系統(tǒng)多用戶

2011-09-01 16:06:41

ios

2013-09-18 10:19:14

開發(fā)者用戶

2023-08-16 13:14:19

2010-02-26 17:47:07

2012-02-21 09:01:15

微軟SQL Azure云計算

2009-09-14 09:50:37

Chrome管理界面谷歌

2021-05-10 14:58:15

微軟64拉版本OneDrive

2015-04-02 15:00:56

TFC

2009-12-03 11:31:16

寬帶路由器

2022-01-10 10:29:44

Windows 11本地應用Windows更新

2010-01-26 08:56:57

Windows 7屏蔽多用戶登錄

2010-10-19 10:39:18

傲游3.0

2011-10-09 11:05:13

Android 4.0
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 韩日精品一区 | 日本天天操 | 久久视频免费观看 | 97精品国产| 人妖videosex高潮另类 | 午夜天堂精品久久久久 | 99自拍视频| 成人精品在线观看 | 91精品国产色综合久久不卡98口 | 一级久久久久久 | 欧美乱码精品一区二区三区 | 波多野结衣中文视频 | 国产精品精品视频一区二区三区 | 久久久久国产一区二区三区 | av在线免费观看网站 | 婷婷福利| 久久久久国产 | 亚洲精品久久久一区二区三区 | 中文字幕日韩欧美一区二区三区 | 亚洲精品一区二区在线观看 | 久久99国产精品 | 国产精品美女一区二区 | 男人的天堂在线视频 | 最新中文字幕 | 欧美日韩亚洲视频 | 国产精品一区二区三区四区 | 国产美女一区二区 | 欧美日韩在线一区 | 国产一区二区黑人欧美xxxx | 操久久久 | 天天操天天玩 | 亚洲v日韩v综合v精品v | 亚洲国产精品久久久久婷婷老年 | 亚洲性视频网站 | 亚洲成人av在线播放 | 亚洲一区二区三区观看 | 激情综合五月 | 中文字幕一区二区三区四区 | 日韩欧美在线免费观看 | 国产精品18hdxxxⅹ在线 | 国产免费一区 |