關于透明ip代理的理論知識
如今的ip代理已經和我們在網絡上面的生活分不開了,畢竟大量的人群上網的時間覆蓋了我們所有,科技時代的發展只會越來越重視網絡,而且這個環境也會更加有規則,更加健康!
透明代理怎么實現換IP?
假設A為內部網絡客戶機,B為外部網絡服務器,C為防火墻。當A對B有連接請求時,TCP連接請求被防火墻截取并加以監控。截取后當發現連接需要使用代理服務器時,A和C之間首先建立連接,然后防火墻建立相應的代理服務通道與目標B建立連接,由此通過代理服務器建立A和目標地址B的數據傳輸途徑。從用戶的角度看,A和B的連接是直接的,而實際上A是通過代理服務器C和B建立連接的。反之,當B對A有連接請求時原理相同。由于這些連接過程是自動的,不需要客戶端手工配置代理服務器,甚至用戶根本不知道代理服務器的存在,因而對用戶來說是透明的。
以上為百度百科的解釋,此處防火墻也可以為路由器,路由器可以截獲通過的網絡數據,而將其轉發到代理服務
對于網絡數據的轉發可以使用Linux的iptables命令進行設置
在路由器上使用iptables設置過轉發規則后,路由器可以將收到的client程序的tcp數據轉發給特定端口號,代理程序可在該端口號上使用tcp socket進行監聽,獲取連接后即可像普通socket程序一樣進行與client端進行通訊;
代理程序與server端連接時,需要獲取到server端的ip地址與端口號,該信息可以通過getsockopt的方式獲取
getsockopt(clifd,SOL_IP,SO_ORIGINAL_DST,&orig_addr,&sin_size);
SO_ORIGINAL_DST是一個socket參數(SOL_IP層的),使用時需要包含#include頭文件。
如果成功orig_addr將是客戶真正需要去的方向
之后代理程序可以將client的tcp轉發server端,然后再將server端的數據轉發給client端,即可實現透明代理。相信你通過了解透明ip代理對這個軟件有了一定的認識,對后期根據自己的需求判斷屬于自己的換ip地址軟件更加容易選擇的多。
版權聲明:本文為ipadsl.cn所屬公司原創作品,未經許可,禁止轉載!