Http Tunnel 小記


  HTTP隧道是一種通信技術,通過該技術,使用不同的網絡協議,使用HTTP協議,網絡協議問題通常屬於TCP / IP的協議族的封裝。HTTP協議,因此,作為一個通道,被傳輸的網絡協議進行通信時使用的包裝。HTTP流,其隱蔽通道被稱為一個HTTP隧道。HTTP隧道軟件由客戶端-服務器的HTTP隧道與現有的應用軟件集成的應用程序,允許它們被用在條件受限的網絡連接,包括防火牆的網絡。

  HTTP隧道機制:希望與遠程主機進行通信的應用程序打開一個HTTP連接到一個中介服務器,充當通信中繼和遠程主機。然后,應用程序與中介服務器使用HTTP請求,這些請求內封裝的實際通信。中介服務器解開前的實際數據轉發到遠程主機,從遠程主機接收數據時,把數據包裹在HTTP協議中做為HTTP響應的一部分發送至應用程​​序。

  簡單說,當在一個受防火牆的端口屏蔽、Url攔截或Dns污染等的網絡環境下,通過Http Tunnel Client把數據包通過Http 80端口發送至Http Tunnel Server代理服務器,代理服務器再將這些數據包轉發至遠程主機。

主要常用場景:

    1. QQ、MSN等IM軟件被封;

    2. 迅雷、電騾等P2P軟件被封;

    3. mstsc遠程桌面、FTP客戶端等網絡通訊受阻;

    4. 部分網站被封;

    5. 網絡環境統一走代理服務器和Dns服務器;

    ......

https://sites.google.com/site/luizluca/port-forward-over-http 介紹了HTTP轉包的思路;

BarbaTunnel 實現了Http/Udp Tunnel的開源項目;

GNU HTTPtunnel 跨平台,但不支持multiple tunnels;

飛檐走壁 實現了Http Tunnel的國產開源項目,並支持multiple tunnels和socks4/4a/5以及Http代理協議的包裝;

 

  這里主要介紹飛檐走壁的使用方式。首先是點擊這里安裝,安裝完畢后運行界面如下圖:

默認開啟了socks4/4a/5和Http代理協議的包裝(這里的socks4包含socks4a);右鍵通知區域圖標可查看菜單,菜單項有“配置”、“啟動Proxifier”、“我的設備等”。點擊“配置”打開“CloudAgent.config”(可用記事本打開)如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <!--開啟服務端節點-->
    <add key="AsServerNode" value="false"/>
    
    <!--開啟加密通訊-->
    <add key="EnableSsl" value="false"/>
    
    <!--驗證憑據 格式:“用戶名:密碼”-->
    <add key="Credential" value="rocky:e89e4780c76ce101f1a32a7d87e9489d"/>
    
    <!--隧道列表 格式:“本地代理端口#代理協議或轉發端點,\代表反向連接”-->
    <add key="TunnelList" value="1080#Socks4, 1081#Socks5, 1082#Http, --1800#121.199.43.145:3389, 6379#121.199.43.145:6379, 6380#121.199.43.145:6380"/>
  </appSettings>
</configuration>

TunnelList的值由半角,分割,每項#號左邊代表本地監聽的端口,#號右邊可為3種方式:
1. 遠程終結點,即 IP + 端口;
    格式:1800#121.199.43.145:3389
    這種方式直接轉發數據包,如mstsc、redis這種遠程終結點已知的應用;

2. “Socks4, Socks5, Http” 這3個枚舉值之一,枚舉值區分大小寫;socks5支持服務端Dns解析和Udp協議,因此應優先選擇socks5代理。
    格式:1081#Socks5
    這種方式會在本地對應代理協議的方式監聽,如FTP, qq這種遠程終結點未知的應用;一般網絡應用程序都有設置代理的選項如下圖QQ: 
點擊OK后即設置完畢。

3. 方式1或方式2 + "\設備ID",其中設備ID必須是相同帳號下的客戶端,並且設備ID是由服務端動態分配;
    格式:1800#121.199.43.145:3389\F7B4B4DC-B427-4A90-9210-5149309FCDD9 或 1081#Socks5\F7B4B4DC-B427-4A90-9210-5149309FCDD9
    這種方式會反向連接設備ID上的網絡應用;如家里的客戶端連接公司的客戶端設備上的mstsc;

 

  在使用代理服務器上網的環境中,因為部分軟件不支持或不能很好地支持代理服務器導致出現無法正常使用的問題,Proxifier可以很好地解決這個問題。右鍵圖標菜單“啟動Proxifier”,Proxifier運行后會在系統任務欄中建立一個圖標,反應通過代理的數據情況,至此基本的Proxifier安裝和設置已經完成,不必再在軟件中另行設置代理服務器信息,輕松上網。

image_thumb19

自動代理很方便,但也會遇到一些不需要通過代理的網絡訪問受到影響而無法使用的問題,比如一些內網的應用,Proxifier提供代理規則設置功能,通過設置不但可以自動識別不需要走代理的網絡訪問,還支持不同應用走不同代理服務器的功能(本教程中不涉及,可自行摸索)。

點擊菜單欄中的“Profile”-“Proxification Rules”

image_thumb29

軟件中預置的規則如下圖,藍色規則表示符合“Target Hosts”的應用采取“Direct”直連的方式通訊。

第二天規則表示默認情況下所有的應用均通過我們的“默認代理服務器”。

此處我們介紹一下如何增加“直連”的應用程序設置,雙擊藍色規則。

image_thumb32

在箭頭的輸入框中輸入走“直連”的主機地址,使用分號進行分隔,支持IP、域名且支持通配符。

設置完畢后點擊“OK”按鈕確認生效。

image_thumb34

 

參考文獻:
  http://www.cnblogs.com/mandrake/archive/2012/05/24/2516871.html Proxifier設置


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM