一種socks透明代理的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于無線通信的路由器的技術(shù)領(lǐng)域,具體地涉及一種SOCKS透明代理的方法以及裝置,其主要提高了 SOCKS透明代理的DNS解析速度與精度。
【背景技術(shù)】
[0002]采用SOCKS協(xié)議的代理服務器就是SOCKS服務器,是一種通用的代理服務器。S0CKS是個電路級的底層網(wǎng)關(guān),是DavidKoblas在1990年開發(fā)的,此后就一直作為InternetRFC標準的開放標準。
[0003]S0CKS是一組由Internal工程工作小組(IETF)所開發(fā)出來的開放軟件開放標準,用來處理網(wǎng)絡(luò)安全的事宜。S0CKS像一堵墻被夾在Internal服務器和客戶端之間,對于出入企業(yè)網(wǎng)絡(luò)的資訊提供流量和安全的管理。S0CKS這個名詞并不是一組英文字頭的縮寫,而是一個和TCP/IP的Socket端口有關(guān)的安全標準,一般防火墻系統(tǒng)通常是像網(wǎng)關(guān)(Gateway)一樣是作用在0SI模型(Open System Interconnect1n,開放式通信系統(tǒng)互聯(lián)參考模型)的第七層也就是應用層上,對TCP/IP的高級協(xié)議,如Telnet、FTP、HTTP和SMTP加以管制,而S0CKS作用在0SI模型的第五層也就是會話層上,像一個代理一樣對客戶端到服務器端或服務器和服務器之間的數(shù)據(jù)聯(lián)系,提供安全上的服務。由于S0CKS作用在會話層上,因此它是一個提供會話層到會話層間安全服務的方案,不受高層應用程序變更的影響。
[0004]S0CKS不要求應用程序遵循特定的操作系統(tǒng)平臺,S0CKS代理與應用層代理、HTTP層代理不同,S0CKS代理只是簡單地傳遞數(shù)據(jù)包,而不必關(guān)心是何種應用協(xié)議(比如FTP、HTTP和NNTP請求)。所以,S0CKS代理比其他應用層代理要快得多。
[0005]透明代理的意思是客戶端根本不需要知道有代理服務器的存在,它改編你的request fields (報文),并會傳送真實IP。SOCKS代理屬于透明代理。S0CKS代理目前被廣泛應用于各種場景,如穿越防火墻規(guī)則、防止通訊內(nèi)容泄露增加安全性等。其原理是通過將客戶端的網(wǎng)絡(luò)流量轉(zhuǎn)發(fā)至S0CKS代理服務器從而實現(xiàn)透明代理。
[0006]但是,由于各種原因,在目前的網(wǎng)絡(luò)環(huán)境中,S0CKS透明代理中的DNS解析速度比較慢,精度比較差。
【發(fā)明內(nèi)容】
[0007]本發(fā)明要解決的技術(shù)解決問題是;克服現(xiàn)有技術(shù)的不足,提供一種S0CKS透明代理的方法,通過讓S0CKS代理服務器解析目標域名,提升透明代理的效率和準確性。。
[0008]本發(fā)明的技術(shù)解決方案是;這種S0CKS透明代理的方法,該方法運行在路由器中,并包括以下步驟;
[0009](1)當收到客戶端發(fā)起的DNS請求時,向客戶端返回動態(tài)生成的IP地址,并記錄此IP地址與待解析域名的對應關(guān)系;
[0010](2)攔截客戶端以此IP地址為目標發(fā)起的連接;
[0011](3)查詢此IP地址所對應的域名并將其發(fā)送給預設(shè)的S0CKS代理服務器;
[0012](4)將客戶端和SOCKS代理服務器間的通訊流量互相轉(zhuǎn)發(fā)至對方;
[0013](5)結(jié)束。
[0014]還提供了一種SOCKS透明代理的裝置,該裝置嵌入在路由器中,并配置來;
[0015]當客戶端連接至路由器時,通過DHCP協(xié)議將路由器本機IP地址作為DNS服務器提供給客戶端;
[0016]當收到客戶端發(fā)起的DNS請求時,向客戶端返回動態(tài)生成的IP地址,并記錄此IP地址與待解析域名的對應關(guān)系;
[0017]攔截客戶端以此IP地址為目標發(fā)起的連接;
[0018]查詢此IP地址所對應的域名并將其發(fā)送給預設(shè)的SOCKS代理服務器;
[0019]將客戶端和SOCKS代理服務器間的通訊流量互相轉(zhuǎn)發(fā)至對方。
[0020]本發(fā)明通過向客戶端返回動態(tài)生成的IP地址,并記錄此IP地址與待解析域名的對應關(guān)系,攔截客戶端以此IP地址為目標發(fā)起的連接,查詢此IP地址所對應的域名并將其發(fā)送給預設(shè)的SOCKS代理服務器,然后將客戶端和S0CKS代理服務器間的通訊流量互相轉(zhuǎn)發(fā)至對方,從而提升了透明代理的工作效率和準確性。
【附圖說明】
[0021]圖1是根據(jù)本發(fā)明的S0CKS透明代理的方法的流程圖。
[0022]圖2是根據(jù)本發(fā)明的S0CKS透明代理的裝置的一個優(yōu)選實施例的各部分之間的關(guān)系示意圖。
【具體實施方式】
[0023]如圖1所示,這種S0CKS透明代理的方法,該方法運行在路由器中,并包括以下步驟;
[0024](1)當客戶端連接至路由器時,通過DHCP協(xié)議將路由器本機IP地址作為DNS服務器提供給客戶端;
[0025](2)當收到客戶端發(fā)起的DNS請求時,向客戶端返回動態(tài)生成的IP地址,并記錄此IP地址與待解析域名的對應關(guān)系;
[0026](3)攔截客戶端以此IP地址為目標發(fā)起的連接;
[0027](4)查詢此IP地址所對應的域名并將其發(fā)送給預設(shè)的S0CKS代理服務器;
[0028](5)將客戶端和S0CKS代理服務器間的通訊流量互相轉(zhuǎn)發(fā)至對方;
[0029](6)結(jié)束。
[0030]本發(fā)明通過向客戶端返回動態(tài)生成的IP地址,并記錄此IP地址與待解析域名的對應關(guān)系,攔截客戶端以此IP地址為目標發(fā)起的連接,查詢此IP地址所對應的域名并將其發(fā)送給預設(shè)的S0CKS代理服務器,然后將客戶端和S0CKS代理服務器間的通訊流量互相轉(zhuǎn)發(fā)至對方,從而提高了透明代理的工作效率和準確性。
[0031]優(yōu)選地,在所述步驟(2)中,當路由器收到客戶端發(fā)起的DNS請求時,在預先設(shè)定好的一個IP地址段中選擇一個尚未被使用的IP地址,并記錄此IP地址與待解析域名的對應關(guān)系,然后將此IP地址作為DNS解析的結(jié)果返回給客戶端。
[0032]優(yōu)選地,在所述步驟(3)中,當客戶端收到DNS解析的結(jié)果,并以結(jié)果中的IP地址作為目標發(fā)起連接時,路由器判斷此連接的目標的IP地址是否屬于預先設(shè)定好的IP地址段;如果是則攔截客戶端以此IP地址為目標發(fā)起的連接,并作為目標與客戶端建立連接;如果不