![代理服務器在_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/20/1a90ab66-d2f4-43b4-b579-edf3b2fba212/1a90ab66-d2f4-43b4-b579-edf3b2fba2121.gif)
![代理服務器在_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/20/1a90ab66-d2f4-43b4-b579-edf3b2fba212/1a90ab66-d2f4-43b4-b579-edf3b2fba2122.gif)
![代理服務器在_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/20/1a90ab66-d2f4-43b4-b579-edf3b2fba212/1a90ab66-d2f4-43b4-b579-edf3b2fba2123.gif)
![代理服務器在_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/20/1a90ab66-d2f4-43b4-b579-edf3b2fba212/1a90ab66-d2f4-43b4-b579-edf3b2fba2124.gif)
![代理服務器在_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-11/20/1a90ab66-d2f4-43b4-b579-edf3b2fba212/1a90ab66-d2f4-43b4-b579-edf3b2fba2125.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、代理服務器在 Windows下的實現(xiàn)LYSoft-劉洋摘要:代理服務器作為連接Internet與Intranet的橋梁,在實際應用中發(fā)揮著極其重要的作用。它可用于多個目的,最基本的功能是連接,此外還包括安全性、緩存、內容過濾、訪問控制管理等功能。目前市場上主要是國外的代理服務器產品,而國外的產品并不能很好的適應國內企業(yè)的需求。本文實現(xiàn)了一個代理服務器系統(tǒng),可代理HTTP, Tunnel, Socks 5 TCP這三個最常用的協(xié)議,此外還有用戶管理和Web服務,Web代理等功能。關鍵字:代理服務器(Proxy)、HTTP、Windows、Tunnel、Socks5、WWW、ServerAbstr
2、act:Proxy servers that act as a bridge between Internet and Intranet and cache Internet resources have gained wide acceptance at the enterprise level. Attempts are being made to extend proxy servers to support multi-level caching in order to reduce Internet workload and obtain an increase in perform
3、ance and security. Proxy server is be built by many software company. But they are might be not suitable for our situation. This paper argues how to design a proxy system that supports favor protocol: HTTP, Tunnel and Socks 5 TCP. We can extend this system to adapt our applications.Keyword: Proxy、HT
4、TP、Windows、Tunnel、Socks5、WWW、ServerPower by LYSoft Liu Yang 2003-05-02 Web pages : 引言隨著計算機知識的逐步普及以及Internet網絡的迅速發(fā)展。越來越多的公司紛紛將自己的公司局域網接入了Internet。當然接入因特網的方式是多樣的。通常,對于個人用戶來說,只要購買一個調制解調器通過一根電話線就能連上因特網了。公司由于計算機數(shù)量多,通信需求量大,一般都采用專線接入方式。然而每臺計算機都使用專線上網的費用太昂貴了,那么有沒有辦法利用一條電話線或者是專線就可以使多臺計算機同時上網呢?在這種情況下,代理服務器便應運
5、而生了。那什么是代理服務器,它是如何工作的,它有什么作用以及如何設置和使用代理服務器就成了人們很關心的話題。籍于此,我就參照有關代理服務器的技術資料開發(fā)出LY Proxy Server代理服務器。第一章 代理服務器的基礎理論11代理服務器的基本概念:代理服務器(Proxy Server)就是個人網絡和因特網服務商之間的中間代理機構,它負責轉發(fā)合法的網絡信息,并對轉發(fā)進行控制和登記。在使用網絡瀏覽器瀏覽網絡信息的時候,如果使用代理服務器,瀏覽器就不是直接到Web服務器去取回網頁,而是向代理服務器發(fā)出請求,由代理服務器取回瀏覽器所需要的信息。目前使用的因特網是一個典型的客戶機服務器結構,當用戶的本
6、地機與因特網連接時,通過本地機的客戶程序比如瀏覽器或者軟件下載工具發(fā)出請求,遠端的服務器在接到請求之后響應請求并提供相應的服務。12代理服務器的作用:代理服務器處在客戶機和服務器之間,對于遠程服務器而言,代理服務器是客戶機,它向服務器提出各種服務申請;對于客戶機而言,代理服務器則是服務器,它接受客戶機提出的申請并提供相應的服務。也就是說,客戶機訪問因特網時所發(fā)出的請求不再直接發(fā)送到遠程服務器,而是被送到了代理服務器上,代理服務器再向遠程的服務器提出相應的申請,接收遠程服務器提供的數(shù)據(jù)并保存在自己的硬盤上,然后用這些數(shù)據(jù)對客戶機提供相應的服務。13使用代理服務器的好處:對于使用代理服務器上網的用
7、戶來說,合理設置并使用它有很多好處:、能加快對網絡的瀏覽速度;、節(jié)省IP開銷。使用代理服務器時,所有用戶對外只占用一個IP,所以不必租用過多的IP地址,降低網絡的維護成本(注:NAT服務器也是一種代理服務器,但它工作在IP層);、可以作為應用防火墻保護局域網的安全。通過代理服務器,用戶可以設置IP地址過濾,限制內部網對外部的訪問權限;4、通過代理服務器,用戶可以設置用戶驗證和記賬功能,對用戶進行記賬,沒有登記的用戶無權通過代理服務器訪問Internet網。并對用戶的訪問時間、訪問地點、信息流量進行統(tǒng)計。下面給出使用Proxy Server的網絡系統(tǒng)拓撲圖: 從圖可以看出代理服務器是中小型企業(yè)訪
8、問Internet解決方案的重要組成部分,對它的功能進行簡單的擴展,就可以構成訪問計費系統(tǒng)和管理系統(tǒng),因此擁有代理服務器的內核對企業(yè)管理和程序員都是很有意義的。14代理服務器的工作原理:首先,我要向大家聲明的是,代理服務器與專線接入中用到的路由器是兩個不同的概念。代理服務器是建立在TCP/IP協(xié)議應用層上的一種服務軟件,而路由器則是連接在網絡中的一臺硬件設備,它是工作在TCP/IP協(xié)議的IP層上,主要起尋徑作用。代理服務器軟件一般安裝在一臺性能比較突出且裝有調制解調器和網卡的計算機上。在內部局域網中的每一臺客戶機都必須擁有一個獨立的IP地址,而且事先必須在客戶機軟件上配置使用代理服務器并指向代
9、理服務器的IP地址和服務端口號。當代理服務器啟動時,將利用一個名為WinSock的動態(tài)連接程序來開辟一個指定的端口,等待用戶的訪問請求。從圖可以直接看出代理服務器是Internet接入的中介。15需求分析:目前市場上流行的代理服務器,像Microsoft Proxy Server、Netscape Proxy Server、WinGate、WinRouter等,雖然功能和性能等方面都還相當?shù)牟诲e,但畢竟是別人的東西,從保證安全性的角度出發(fā),很有必要開發(fā)一個自己的代理服務器。而且,在實際使用中可定制性太差,因此研究并實現(xiàn)代理服務器不僅有助于深入了解各種Internet協(xié)議的實現(xiàn)細節(jié),掌握代理的技
10、術,而且可實現(xiàn)軟件的國產化,滿足國內用戶的安全性需求,對于社會和個人都是有積極意義的。下面是小型企業(yè)網吧校園網絡的網絡拓撲圖:第二章 代理服務器的實現(xiàn)核心根據(jù)代理服務器工作的層次,一般可分為應用層代理(HTTP,F(xiàn)TP)、傳輸層代理(Scoks,Tunnel)。為便于統(tǒng)一處理,本文采用TCP傳輸層代理,在此基礎上支持HTTPSocks 5協(xié)議代理。并出于對可靠性和簡單性方面的考慮,本代理服務器系統(tǒng)采用端口重定向方案而且不提供對Cache的支持,只是簡單定制了客戶端的操作過程。代理服務器監(jiān)聽特定端口,客戶端需要連接到外部網絡時,首先要顯式地連接代理服務器的監(jiān)聽端口。代理服務器響應后,客戶端指出需
11、要連接的遠端目的地,由代理服務器來進行連接。連接成功以后,代理服務器轉發(fā)數(shù)據(jù),客戶端的操作就像直接與遠端相連一樣了。下文針對LY Proxy Server的HTTP代理進行討論。本系統(tǒng)還支持其他協(xié)議Tunnel、Socks 5 TCP,其基本原理與HTTP類似,就不另外專門討論了。21基本思路當前流行的瀏覽器的系統(tǒng)選項中有一個參數(shù),即“通過代理服務器連接”,經過編程測試,當局域網中一臺工作站指定了該屬性,再發(fā)出Internet請求時,請求數(shù)據(jù)將發(fā)送到所指定的代理服務器上,以下為請求數(shù)據(jù)包示例:
12、160; GET HTTP/1.0 Host: Proxy-Connection: Keep-Alive其中第一行為目標URL及相關方法、協(xié)議,“Host”行指定了目標主機的地址。由此知道了代理服務的過程:接收被代理端的請求、連接真正的主機、接收主機返回的數(shù)據(jù)、將接收數(shù)據(jù)發(fā)送到被代理端。為此可編寫一個簡單的程序,完成上述網絡通信重定向問題。用Delphi設計時,選用HTTPP
13、roxyClient(繼承自TWSocketClient)作為與被代理工作站通信的套接字控件,選用RemoteSocket(繼承自WSocket)作為與遠程主機通信的套接字控件,并且這個控件作為HTTPProxyClient的內部成員,一個HTTPProxyClient只有唯一的一個RemoteSocket。編程時應解決的一個重要問題是多重連接處理問題,為了加快代理服務的速度和被代理端的響應速度,套接字控件的屬性應設為非阻塞型;各通信會話與套接字動態(tài)綁定,用套接字的Owner屬性值確定屬于哪一個會話。22 HTTP代理的建立過程1) Proxy啟動監(jiān)聽Brower的連接申請2) Proxy接受
14、Brower的連接請求,Brower向Proxy發(fā)代理數(shù)據(jù)請求3) 創(chuàng)建并啟動P_C_S動態(tài)對象,此對象負責Proxy與Browser的數(shù)據(jù)傳輸4) Proxy解析Brower發(fā)的數(shù)據(jù),分析數(shù)據(jù)報,確定服務類型(HTTP),服務器地址和服務端口號5) P_C_S創(chuàng)建并啟動Proxy-Remote Socket(P_R_S Proxy-Server)動態(tài)對象,該動態(tài)對象連接到遠程服務器,負責遠端Server與Proxy的數(shù)據(jù)傳輸6) Proxy內核相互轉發(fā)P_C_S動態(tài)對象的數(shù)據(jù)和P_R_S動態(tài)對象的數(shù)據(jù)接收接收發(fā)送發(fā)送請求1.監(jiān)聽2.連接上,發(fā)數(shù)據(jù)6.連接服務器3.創(chuàng)建并啟動P_C_S動態(tài)對象
15、初始化數(shù)據(jù)Proxy Remote SocketProxy Client SocketProxy Client SocketProxy Client SocketProxy Remote SocketProxy Client Socket4.解析數(shù)據(jù)Proxy Remote Socket5.創(chuàng)建P_R_S動態(tài)對象緩沖Buffer/Web服務數(shù)據(jù)系統(tǒng)管理ProxyBrowerServerHTTP代理的建立過程圖解24 代理核心框架結構HTTP協(xié)議是各部分單獨連接傳送的,Web頁面中的每個文本,圖片和其它對象都是作為獨立單元傳送的,為了提高Proxy的效率防止主程序阻塞,特意使用非阻塞的多對象So
16、cket處理,本系統(tǒng)沒有使用多線程,只有主線程!所有數(shù)據(jù)由Socket動態(tài)對象負責傳輸。主線程1創(chuàng)建監(jiān)聽socket2監(jiān)聽Brower的申請3創(chuàng)建啟動P_C_S對象P_C_S對象Accept Brower關聯(lián)處理事件創(chuàng)建啟動P_R_S對象P_R_S對象連接遠程服務器數(shù)據(jù)傳輸分析請求數(shù)據(jù)Web服務發(fā)送請求文件各對象之間的關系會話結束,釋放資源主線程在Proxy端口監(jiān)聽Brower的申請,然后啟動P_C_S對象;P_C_S對象負責接受每個Brower的申請(每個P_C_S都是獨立的),在完成Brower到Proxy雙向數(shù)據(jù)傳送的同時啟動P_R_S對象,然后由P_R_S對象完成Server到Prox
17、y的雙向數(shù)據(jù)傳送。本系統(tǒng)基于ICS組件的WSocket, WSockets的,所以Socket編程已被封裝到ICS中,使用起來比其直接使用WinSock API要簡單。由于篇幅所限,本文將簡要介紹P_C_S對象和P_R_S的關鍵實現(xiàn)過程。 (I) Browser (B)發(fā)給Proxy (P)的數(shù)據(jù)分析這部分的主要功能是分析B發(fā)給P的數(shù)據(jù),確定服務類型和服務器相關信息。Proxy程序需要通過查找“URL”中的“http:/”串確定是否是HTTP服務,從URL部分中解析到Web服務器的地址,作為Proxy連接的目的地址。同時將“http:/服務器地址”部分從URL部分剔除,這樣可以避免某些Web服
18、務器重定向URL。(II) P_C_S對象的處理函數(shù)這部分的功能是:Brower到Proxy數(shù)據(jù)的雙向傳輸。P_C_S對象由主線程啟動,在整個Proxy程序中負責協(xié)調該對象啟動并同步P_R_S對象。P_C_S把接收到的數(shù)據(jù)臨時存放到FRcvd屬性中,解釋FRcvd的數(shù)據(jù),驗證通過以后啟動P_R_S,由P_R_S的SendStr方法發(fā)送FRcvd的數(shù)據(jù)到Server。P_C_S對象在Accept Brower以后,函數(shù)是非阻塞的,這與普通Proxy技術的實現(xiàn)方法是不一樣的,非阻塞的Socket不會阻塞主線程,可以讓主線程同時處理其他Proxy的連接請求,但在沒有收到Brower的連接申請時必須阻
19、塞本次連接,同時必須保證在數(shù)據(jù)沒有發(fā)送到目標Server之前不能Accept任何數(shù)據(jù)(通過數(shù)據(jù)鎖實現(xiàn))。這一點非常關鍵,這是本系統(tǒng)沒有使用多線程技術但又能起到與多線程相類似效果的重要技術環(huán)節(jié)。小結:可以看出,Proxy是用戶訪問Internet的中介,成為網絡接入管理的核心部分,對Proxy簡單擴展,就可以完成許多功能,例如對數(shù)據(jù)包進行過濾,就構成了一個Firewall;如果對流量進行記錄,就構成了一個計費系統(tǒng)。第三章 代理服務器的系統(tǒng)總體結構31 LY Proxy Server的系統(tǒng)結構圖(1) OnBgException用戶界面(2) OnClientConnect/DataAvailab
20、le/Disconnect控制Proxy Server:THttpProxy 主控系統(tǒng)界面管理更新控制監(jiān)視控制身份驗證(3) OnClientHeadAvailableWeb/遠程管理用戶權限控制Socks5 管理Tunnel 控制(4) OnProxySocksAuth系統(tǒng)監(jiān)視活動連接監(jiān)視設置消息設置消息管理系統(tǒng)信息出錯處理接口:(1)(2)(3)(4)(5)(5) OnTunnelSessionTHTTPProxy的接口如下:本系統(tǒng)以多個模塊組成。HTTP代理模塊、Socks 5 TCP代理模塊、Tunnel代理模塊、Web服務模塊和Web代理模塊分別實現(xiàn)了對應協(xié)議的代理。這些模塊均被封裝
21、到內核組件THTTPProxy的VCL組件中。用戶管理模塊貫穿整個代理服務器系統(tǒng),主要負責對用戶的認證和訪問權限控制等。Web管理模塊是專為那些有需要通過Internet的管理Proxy服務器的用戶提供的服務的。其中最復雜的部分是對OnClientHeadAvailable的處理模塊,從圖上可以看到該模塊實現(xiàn)了系統(tǒng)的用戶管理:數(shù)據(jù)監(jiān)視并發(fā)用戶數(shù)目檢查模塊接口數(shù)據(jù)信息輸出到界面已到達最大用戶數(shù)用戶身份鑒別Web服務模塊Web Proxy模塊遠程控制模塊權限控制站點訪問控制站點重定向返回處理結果無效用戶越權訪問重定向信息32 代理服務器的其它功能多線程二級代理驗證LY Proxy Server內建
22、多線程的二級代理驗證功能。使用該功能可以同時驗證多個二級代理服務器是否可用,支持HTTP和Tunnel兩種協(xié)議??梢詫雽С鼋Y果,而且結果兼容Proxy Hunter(代理獵手)的文件格式。也可以單獨驗證查看某個二級代理服務器的驗證情況,通過一個按鈕就是可以立刻使用該二級代理,極大方便了管理員的管理工作。用戶訪問規(guī)則管理本代理服務器對客戶端的管理提供兩種模式:基于主機,即基于IP地址的管理和基于用戶的管理方式。方便管理員根據(jù)不同的場合配置系統(tǒng)的管理模式。Web站點重定向通過站點重定向可以實現(xiàn)在代理服務器上強行更該目標主機,例如重定向到。可能有部分管理員有對站點重定向的需要,所以系統(tǒng)提供該項功能
23、。同樣也可以通過重定向一個不存在的網址到一個已存在的站點實現(xiàn)在客戶端虛擬頂級域名。Web代理系統(tǒng)通過本系統(tǒng)提供的Web方式代理,用戶可以不設置瀏覽器的代理服務器參數(shù)就可以臨時通過Web方式使用本系統(tǒng)的Web代理。通過在瀏覽器的地址欄輸入http:/ServerIP:ServerPort/webproxy?url=http:/目標站點地址實現(xiàn)瀏覽。本系統(tǒng)的Web代理與普通代理一樣,都是遵從代理服務用戶管理系統(tǒng)的,沒有授權的用戶是不能訪問的。Web服務器本系統(tǒng)提供簡單的Web服務器功能,雖然還不能支持Script和Web應用程序,但已實現(xiàn)了最基本的Web服務。因為本系統(tǒng)的內核結構是兼容Web服務的
24、,所以提供這一功能并不復雜,有需要的管理員可以啟用這一功能。在默認情況下,本功能是被禁止的,并提供系統(tǒng)版本時間作為默認主頁信息。Web遠程管理本系統(tǒng)在基于Web服務器的基礎上構建了Web方式的遠程管理系統(tǒng)。通過瀏覽器就可以輕松實現(xiàn)在異地管理本代理服務器。第四章 軟件開發(fā)測試環(huán)境41 開發(fā)測試平臺ASUS CUBX (BIOS 1008beta4-CMD 1.9.16 Tulatin), Intel Celeron III 1GHz1.33GHz128*3 KingMax PC133 SDRAM, IBM DTLA-307045 45G/7200RPMMicrosoft Windows XP P
25、rofessional (Build 2600.1 English Version) With SP1;Borland Delphi7;廣州大學教育網;測試服務器:Google搜索引擎 北京大學圖書館ftp:/ASUS華碩德國站點:ftp:/ftp.asuscom.de42 開發(fā)工具采用Delphi 7快速RAD開發(fā)系統(tǒng),Delphi擁有最廣泛的第三方技術支持,能最大的提高開發(fā)效率。43 軟件運行環(huán)境1、 軟件要求:可運行于Windows 98/ME/2000/Server 2003操作系統(tǒng)。2、 硬件要求最低配置:Intel Pentium II 266Celeron 300或以上的CPU;32M內存;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)代辦公室空間的靈活性與可變性設計
- 現(xiàn)代物流人才培養(yǎng)與教育創(chuàng)新
- 學校記者團國慶節(jié)活動方案
- 現(xiàn)代企業(yè)的辦公自動化與多維度管理培訓體系構建研究
- 現(xiàn)代企業(yè)家的自我管理與時間管理策略
- 現(xiàn)代汽車制造工藝的變革與教育新模式
- 現(xiàn)代企業(yè)決策中的核心能力體現(xiàn)
- 國慶節(jié)主題活動方案早教
- 2023三年級數(shù)學下冊 四 綠色生態(tài)園-解決問題第3課時說課稿 青島版六三制001
- 2024-2025學年高中歷史 專題八 當今世界經濟的全球化趨勢 二 當今世界經濟的全球化趨勢(3)教學說課稿 人民版必修2
- 燃煤電廠超低排放煙氣治理工程技術規(guī)范(HJ 2053-2018)
- 臨床敘事護理概述與應用
- TSG-T7001-2023電梯監(jiān)督檢驗和定期檢驗規(guī)則宣貫解讀
- 冠脈介入進修匯報
- 護理病例討論制度課件
- 養(yǎng)陰清肺膏的臨床應用研究
- 恩施自治州建始東升煤礦有限責任公司東升煤礦礦產資源開發(fā)利用與生態(tài)復綠方案
- PDCA提高臥床患者踝泵運動的執(zhí)行率
- 蔣詩萌小品《誰殺死了周日》臺詞完整版
- DBJ-T 15-98-2019 建筑施工承插型套扣式鋼管腳手架安全技術規(guī)程
- 2025屆新高考英語復習閱讀理解說明文解題策略
評論
0/150
提交評論