欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種穿透內(nèi)網(wǎng)遠(yuǎn)程連接大規(guī)模虛擬機(jī)的方法

文檔序號:7998546閱讀:802來源:國知局
一種穿透內(nèi)網(wǎng)遠(yuǎn)程連接大規(guī)模虛擬機(jī)的方法
【專利摘要】本發(fā)明公開了一種基于代理方法,使得遠(yuǎn)程控制工具(vnc4server)可以穿透內(nèi)網(wǎng),連接局域網(wǎng)大規(guī)模機(jī)器集群中的任意虛擬機(jī)。本發(fā)明方法通過構(gòu)造一個符合規(guī)則的url,直接向代理服務(wù)器發(fā)送請求,代理服務(wù)器通過解析請求的url,得到需要連接的內(nèi)網(wǎng)虛擬機(jī)IP和端口號,向該虛擬機(jī)轉(zhuǎn)發(fā)請求,并把虛擬機(jī)的響應(yīng)轉(zhuǎn)發(fā)給客戶端。本發(fā)明不需要修改vnc4server服務(wù)端的任何配置,只需要部署一臺代理服務(wù)器,用指定規(guī)則的url訪問,就可以通過瀏覽器遠(yuǎn)程連接內(nèi)網(wǎng)中的虛擬機(jī)(Linux和Windows)。本發(fā)明方法使用簡單友好,部署簡單易行,訪問過程安全穩(wěn)定可靠。
【專利說明】一種穿透內(nèi)網(wǎng)遠(yuǎn)程連接大規(guī)模虛擬機(jī)的方法

【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計算機(jī)網(wǎng)絡(luò)領(lǐng)域,特別是涉及遠(yuǎn)程控制工具軟件穿透內(nèi)網(wǎng)的方法。

【背景技術(shù)】
[0002] 本發(fā)明涉及遠(yuǎn)程控制協(xié)議,當(dāng)前的主流有ssh協(xié)議、vnc協(xié)議等。
[0003] SSH為Secure Shell的縮寫,是一種為建立在應(yīng)用層和傳輸層基礎(chǔ)上的安全協(xié) 議,是專為遠(yuǎn)程登錄會話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議。利用SSH協(xié)議可以有效防止 遠(yuǎn)程管理過程中的信息泄露問題。SSH客戶端適用于多種平臺,幾乎所有Unix平臺一包括 HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平臺一都可運行 SSH。
[0004] VNC (Virtual Network Computing),為一種使用RFB協(xié)定的屏幕畫面分享及遠(yuǎn)程 操作軟件。此軟件借由網(wǎng)絡(luò),可傳送鍵盤與鼠標(biāo)的動作及實時的屏幕畫面。VNC與操作系統(tǒng) 無關(guān),因此可跨平臺使用,例如可用Windows連接到某Linux的電腦,反之亦同。甚至在沒 有安裝客戶端程序的電腦中,只要有支持JAVA的瀏覽器,也可使用。
[0005] 由于我們的平臺中申請的虛擬機(jī)既有Linux操作系統(tǒng),也有Windows操作系統(tǒng),我 們選擇vnc4server開源軟件作為遠(yuǎn)程控制工具。
[0006] 對于外網(wǎng)訪問內(nèi)網(wǎng)中的機(jī)器,現(xiàn)有的技術(shù)就是使用NAT協(xié)議。
[0007] 網(wǎng)絡(luò)地址轉(zhuǎn)換(Network Address Translation或簡稱NAT)是一種在IP封包通過 路由器或防火墻時重寫源IP地址或/和目的IP地址的技術(shù)。NAT包括靜態(tài)網(wǎng)絡(luò)地址轉(zhuǎn)換、 動態(tài)網(wǎng)絡(luò)地址轉(zhuǎn)換、網(wǎng)絡(luò)地址及端口轉(zhuǎn)換、動態(tài)網(wǎng)絡(luò)地址及端口轉(zhuǎn)換、端口映射等。NAT的端 口映射功能是將一臺主機(jī)的假IP地址映射成一個真IP地址,當(dāng)用戶訪問提供映射端口主 機(jī)的某個端口時,服務(wù)器將請求轉(zhuǎn)到內(nèi)部一主機(jī)的提供這種特定服務(wù)的主機(jī);利用端口映 射功能還可以將一臺真IP地址機(jī)器的多個端口映射成內(nèi)部不同機(jī)器上的不同端口。端口 映射功能還可以完成一些特定代理功能,比如代理POP,SMTP,TELNET等協(xié)議。
[0008] 利用端口映射,可以將集群內(nèi)部的虛擬機(jī)映射到具有外網(wǎng)IP和內(nèi)網(wǎng)IP的雙網(wǎng)卡 服務(wù)器上的端口,外網(wǎng)通過訪問這臺服務(wù)器上的某個端口就可以連接端口對應(yīng)的虛擬機(jī) 了。
[0009] 這種方法有很大的局限性,首先有用端口是受限的,而平臺中的虛擬機(jī)資源是可 以不斷擴(kuò)充的,很有可能沒有足夠的端口來映射虛擬機(jī);其次,用一個數(shù)字(端口)來標(biāo)明一 臺虛擬機(jī),這種方法并不友好,難以記憶。
[0010]


【發(fā)明內(nèi)容】
針對當(dāng)前的技術(shù)背景,本發(fā)明提出了一種基于代理的,能夠使得vnc4server穿透內(nèi) 網(wǎng),遠(yuǎn)程登入大規(guī)模集群平臺中的任意虛擬機(jī)。這種方法使用簡單友好,部署簡單易行,擴(kuò) 展性高,訪問過程安全穩(wěn)定可靠。
[0011] 為了解決上述技術(shù)問題,本發(fā)明通過下述技術(shù)方案得以解決: 一種穿透內(nèi)網(wǎng)遠(yuǎn)程連接大規(guī)模虛擬機(jī)的方法,方法如下: 步驟a :在內(nèi)網(wǎng)中的各個虛擬機(jī)上安裝vnc4server開源軟件,使用vnc4server軟件, 在網(wǎng)絡(luò)互通的情況下,可以使用瀏覽器以桌面的方式遠(yuǎn)程登入Linux或Window機(jī)器; 步驟b :選擇一臺具有外網(wǎng)IP和內(nèi)網(wǎng)IP的雙網(wǎng)卡服務(wù)器,這臺服務(wù)器和其他物理機(jī)共 同組成了一個集群;這樣,外網(wǎng)可以連通這臺服務(wù)器,它又可以連接集群內(nèi)網(wǎng)中的虛擬機(jī)。
[0012] 步驟c :將代理軟件部署在選定的雙網(wǎng)卡服務(wù)器上;由于代理部署在Linux服務(wù)器 上,采用c語言,進(jìn)程池-select模型的架構(gòu)開發(fā)代理,該代理主要是處理http協(xié)議和vnc 協(xié)議; 首先是處理http協(xié)議請求,流程如下: (1) 監(jiān)聽外網(wǎng)IP端口,得到來自外網(wǎng)的http請求; (2) 解析http請求中的url,得到需要連接的虛擬機(jī)IP和端口,并把源主機(jī)IP與目的 虛擬機(jī)IP、端口映射起來,保存在一張表中;然后與目的虛擬機(jī)建立tcp連接,轉(zhuǎn)發(fā)得到并 經(jīng)過重寫的http請求; (3) 監(jiān)聽內(nèi)網(wǎng)IP端口,得到目的虛擬機(jī)的http響應(yīng),直接把該響應(yīng)轉(zhuǎn)發(fā)給對應(yīng)的外網(wǎng) 客戶端; 接下來,代理需要處理vnc協(xié)議。我們的代理軟件不關(guān)心vnc協(xié)議的具體格式,只是簡 單的接收轉(zhuǎn)發(fā),具體流程如下: (1) 監(jiān)聽外網(wǎng)IP端口,得到來自外網(wǎng)的請求; (2) 得到外網(wǎng)請求的源主機(jī)IP,查詢映射表,向?qū)?yīng)的目的虛擬機(jī)轉(zhuǎn)發(fā)該 請求,并等待目的虛擬機(jī)的響應(yīng); (3) 得到目的虛擬機(jī)的響應(yīng),直接向?qū)?yīng)的源主機(jī)IP轉(zhuǎn)發(fā)該響應(yīng)即可; 以上即為代理軟件的處理流程; 步驟d :外網(wǎng)用戶使用特定規(guī)則的url向代理服務(wù)器發(fā)送請求,即可連接遠(yuǎn)程的虛擬 機(jī),通過身份認(rèn)證后,登入系統(tǒng)。
[0013] 我們規(guī)定的url格式是: http://代理服務(wù)IP:Port/目的虛擬機(jī)IP:Port/ 實際部署時,我們使用vnc4server默認(rèn)的端口號5801,于是我們使用http://10. 22. 42. 89:5801/192. 168. 110. 26:5801/就可以通過遠(yuǎn)程桌面的方式連接云平臺中對應(yīng)的虛擬 機(jī)了。
[0014] 本發(fā)明由于采用了以上技術(shù)方案,具有顯著的技術(shù)效果: 本發(fā)明是一種基于代理的,能夠使得Vnc4Server穿透內(nèi)網(wǎng),遠(yuǎn)程登入大規(guī)模集群平臺 中的任意虛擬機(jī),本發(fā)明方法使用簡單友好,部署簡單易行,訪問過程安全穩(wěn)定可靠。

【專利附圖】

【附圖說明】
[0015] 圖1是用來說明整個方法的流程; 圖2是用來說明子進(jìn)程處理http協(xié)議的工作流程; 圖3是用來說明子進(jìn)程處理vnc協(xié)議的工作流程。

【具體實施方式】
[0016] 下面結(jié)合附圖1至附圖3與實施例對本發(fā)明作進(jìn)一步詳細(xì)描述: 實施例1 1、進(jìn)程池模型 本發(fā)明的代理軟件采用進(jìn)程池模型,預(yù)先創(chuàng)建多個子進(jìn)程,處理具體的代理工作,而 主進(jìn)程則維護(hù)進(jìn)程池的大小。進(jìn)程池的大小用配置文件的兩個閾值MinSpareServers和 MaxSpareServers維護(hù)??臻e進(jìn)程個數(shù)的統(tǒng)計使用文件鎖同步,當(dāng)子進(jìn)程進(jìn)入任務(wù)處理流程 時,空閑進(jìn)程個數(shù)減一,當(dāng)子進(jìn)程退出任務(wù)處理流程時,空閑進(jìn)程個數(shù)加一。當(dāng)空閑進(jìn)程個 數(shù)小于MinSpareServers時,主進(jìn)程創(chuàng)建新的工作進(jìn)程,等待任務(wù)的到來,當(dāng)空閑進(jìn)程個數(shù) 大于MaxSpareServers時,當(dāng)前子進(jìn)程退出。這樣,就實現(xiàn)了進(jìn)程池大小的維護(hù)。
[0017] 2、主進(jìn)程工作流程 主進(jìn)程預(yù)先創(chuàng)建指定個數(shù)的子進(jìn)程,接著維護(hù)進(jìn)程池的大小。主進(jìn)程每隔5s鐘醒來, 如果空閑進(jìn)程個數(shù)小于MinSpareServers,則在子進(jìn)程列表中尋找一個空槽位,倉ij建一個新 的子進(jìn)程。至于空閑進(jìn)程個數(shù)大于MaxSpareServers,這種情況不會出現(xiàn),因為子進(jìn)程退出 任務(wù)處理流程時,會進(jìn)行一次判斷,如果空閑進(jìn)程個數(shù)大于MaxSpareServers時,該子進(jìn)程 退出。
[0018] 3、子進(jìn)程工作流程 子進(jìn)程承擔(dān)代理的實際工作,轉(zhuǎn)發(fā)請求和響應(yīng)。子進(jìn)程監(jiān)聽服務(wù)器的5801和5901端 口( vnc4server默認(rèn)配置使用這兩個端口),如果是來自5801端口的連接請求,表明源主機(jī) 發(fā)送的是http協(xié)議,進(jìn)入http協(xié)議處理流程;如果來自5901端口的連接請求,表明源主機(jī) 發(fā)送的是vnc協(xié)議,進(jìn)入vnc協(xié)議處理流程。當(dāng)流程結(jié)束時,空閑進(jìn)程個數(shù)加一,如果空閑 進(jìn)程個數(shù)大于MaxSpareServers,該子進(jìn)程退出,否則繼續(xù)等待10事件。
[0019] 3. 1、處理 http 協(xié)議 子進(jìn)程使用select監(jiān)聽套接字的10事件,對于10事件,不同類型有不同的處理方法: (a)如果是http請求到達(dá),解析url得到對應(yīng)的目的虛擬機(jī)IP和端口。如果這是第一 個請求,保存虛擬機(jī)IP和端口,并使用TCP連接目的虛擬機(jī),把套接字加入select的監(jiān)聽 隊列中。查找映射表,得到對應(yīng)的目的虛擬機(jī)的地址,向其發(fā)送經(jīng)重寫的http請求。
[0020] (b)如果是http響應(yīng),查找映射表,得到源主機(jī)地址,向其轉(zhuǎn)發(fā)該響應(yīng)。
[0021] (c) select等待超時,子進(jìn)程結(jié)束。
[0022] 3.2、處理¥11(3協(xié)議 子進(jìn)程使用select監(jiān)聽套接字的10事件,對于10事件,不同類型有不同的處理方法: (a)如果是vnc請求到達(dá),查找映射表,得到對應(yīng)的目的虛擬機(jī)的地址,如果是第一個 vnc請求,則與虛擬機(jī)建立TCP連接。接著向?qū)?yīng)的套接字發(fā)送vnc請求。
[0023] (b)如果是vnc響應(yīng),查找映射表,得到源主機(jī)地址,向其轉(zhuǎn)發(fā)該響應(yīng)。
[0024] (c) select等待超時,子進(jìn)程結(jié)束。
[0025] 總之,以上所述僅為本發(fā)明的較佳實施例,凡依本發(fā)明申請專利范圍所作的均等 變化與修飾,皆應(yīng)屬本發(fā)明專利的涵蓋范圍。
【權(quán)利要求】
1. 一種穿透內(nèi)網(wǎng)遠(yuǎn)程連接大規(guī)模虛擬機(jī)的方法,步驟如下: 步驟a :在內(nèi)網(wǎng)中的各個虛擬機(jī)上安裝vnc4server開源軟件,使用vnc4server軟件, 在網(wǎng)絡(luò)互通的情況下,可以使用瀏覽器以桌面的方式遠(yuǎn)程登入Linux或Window機(jī)器; 步驟b :選擇一臺具有外網(wǎng)IP和內(nèi)網(wǎng)IP的雙網(wǎng)卡服務(wù)器,這臺服務(wù)器和其他物理機(jī)共 同組成了一個集群; 步驟c :將代理軟件部署在選定的雙網(wǎng)卡服務(wù)器上;由于代理部署在Linux服務(wù)器上, 采用c語言,進(jìn)程池 -select模型的架構(gòu)開發(fā)代理,該代理主要是處理http協(xié)議和vnc協(xié) 議; 步驟d :外網(wǎng)用戶使用特定規(guī)則的url向代理服務(wù)器發(fā)送請求,即可連接遠(yuǎn)程的虛擬 機(jī),通過身份認(rèn)證后,登入系統(tǒng)。
2. 根據(jù)權(quán)利要求1所述的穿透內(nèi)網(wǎng)遠(yuǎn)程連接大規(guī)模虛擬機(jī)的方法,其特征在于:所述 的步驟c中,代理服務(wù)器的處理http協(xié)議的流程如下: (1) 監(jiān)聽外網(wǎng)IP端口,得到來自外網(wǎng)的http請求; (2) 解析http請求中的url,得到需要連接的虛擬機(jī)IP和端口,并把源主機(jī)IP與目的 虛擬機(jī)IP、端口映射起來,保存在一張表中;然后與目的虛擬機(jī)建立tcp連接,轉(zhuǎn)發(fā)得到并 經(jīng)過重寫的http請求; (3) 監(jiān)聽內(nèi)網(wǎng)IP端口,得到目的虛擬機(jī)的http響應(yīng),直接把該響應(yīng)轉(zhuǎn)發(fā)給對應(yīng)的外網(wǎng) 客戶端。
3. 根據(jù)權(quán)利要求1所述的穿透內(nèi)網(wǎng)遠(yuǎn)程連接大規(guī)模虛擬機(jī)的方法,其特征在于:所述 的步驟c中,代理服務(wù)器的處理vnc協(xié)議的流程如下: (1) 監(jiān)聽外網(wǎng)IP端口,得到來自外網(wǎng)的請求; (2) 得到外網(wǎng)請求的源主機(jī)IP,查詢映射表,向?qū)?yīng)的目的虛擬機(jī)轉(zhuǎn)發(fā)該請求,并等待 目的虛擬機(jī)的響應(yīng); (3) 得到目的虛擬機(jī)的響應(yīng),直接向?qū)?yīng)的源主機(jī)IP轉(zhuǎn)發(fā)該響應(yīng)即可; 以上即為代理軟件的處理流程。
【文檔編號】H04L29/08GK104125243SQ201310142306
【公開日】2014年10月29日 申請日期:2013年4月23日 優(yōu)先權(quán)日:2013年4月23日
【發(fā)明者】姜曉紅, 黃鵬, 嚴(yán)海明, 吳朝暉, 楊紅星 申請人:浙江大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
正定县| 河曲县| 阳泉市| 秦皇岛市| 邹城市| 鹿邑县| 河曲县| 临澧县| 资中县| 衡阳县| 普定县| 凤翔县| 通海县| 兴业县| 洛川县| 商洛市| 台山市| 山东省| 赣州市| 萍乡市| 扎兰屯市| 博湖县| 萝北县| 辛集市| 勐海县| 永福县| 南溪县| 达拉特旗| 磴口县| 安仁县| 凤庆县| 兴义市| 贵州省| 西宁市| 海城市| 梨树县| 保定市| 麻城市| 望谟县| 榆中县| 图木舒克市|