1. 程式人生 > >讓女朋友能懂的網絡技術篇之動態代理

讓女朋友能懂的網絡技術篇之動態代理

另一個 這樣的 程序 http 能夠 int 網絡狀態 9.png 必須

一、前言  

  筆者在工作經常遇到需要遠程訪問部署在另外一個城市的服務器上的網站,以分析並解決對方出現的程序異常問題。但是我們部署的程序常常為看不到對方的頁面感到困擾,經過一番研究後,終於找到一種切實可行的方法,在這裏也分享給面臨同樣問題的童鞋。
  情景是這樣的:我本地主機是S,想要遠程訪問T服務器上8080的web應用網站,也就是說我本地主機S的瀏覽器上打開目標網站。但是呢,問題是S和T不是直接相連的,不在同一個局域網,並且每一個主機都有防火墻。慶幸的是,我們發現每一個局域網都一臺對外開放的服務器,比如S所在的局域網有一臺服務器A的22端口是連接到互聯網的,T所在的局域網有一臺服務器B的22的端口是連接到互聯網的。

技術分享圖片

  問題可以這樣形象地描述:我有一封寫好的將要寄往遠方的女朋友的信,我知道她所在的辦公的地方,那麽我要怎樣做才能把這封信寄給她呢?在這裏,我的請求數據就是封裝在IP數據報裏面的內容,而IP數據報就是信封,IP數據報裏面的頭部一般會寫上收信人和地址並蓋個戳。但是呢,我在公司的1號房間,路途遙遠,我不能直接把信給女朋友。突然我想起,公司不是有郵件收發室A嗎?於是,我就跑去2號房間郵件收發室A,由於我是公司內部人員,所以我不需要任何手續就可以進去了。通過郵件收發室,我很快就把信發出去了,一般會有郵局(電信運行商或中間服務器)的人員定時來取。很快,郵遞人員按照我信封上面的地址,找到女朋友所在公司的大樓,但是由於郵遞人員不是女朋友所在公司的內部員工,沒有權限進入她所在的T棟大樓,只能放在她所在公司的前臺。一般情況下,前臺會定時通知公司內部人員哪些人有新郵件啦。最後,她看到了我寫給她的信,非常高興,於是她按照同樣的方式回復了我。

二、操作過程

  下面需要介紹一個專門用於遠程訪問的工具xshell。

  step1:我本地主機S訪問同一局域網的服務器A

技術分享圖片

技術分享圖片

  step2:在登陸上A服務器後,以A為代理去訪問互聯網上的服務器M

技術分享圖片

  配代理A界面如下:

技術分享圖片

  A服務器監聽A本地端口,以建立隧道,這樣就使得A的信可以傳遞到郵局M。

技術分享圖片

  step3:接著,通過M去訪問B,也就是郵局人員去B樓送郵件的過程:

技術分享圖片

技術分享圖片

技術分享圖片

  step4:這時已經連上了B,即已經到達了女朋友所在公司的前臺,只需要最後一步就可以把信送到了,激動不激動。女朋友所在房間號,即IP地址:192.166.1.101.

技術分享圖片

技術分享圖片

技術分享圖片

  step5:最後,打開瀏覽器“Internet設置”,設置代理,然後在瀏覽器輸入localhost:8080/

技術分享圖片

三、動態代理與隧道技術原理引申

  所謂動態代理即通過socket實現端口的轉發,socket是底層操作系統的一個應用程序,它能夠實現端口的監聽,支持不同的傳輸層協議(TCP或UDP),當使用TCP協議進行連接時,該Socket連接就是一個TCP連接。所謂隧道,就類似於socket之間建立的TCP連接。在TCP連接中,我們從一側的出口(socket)放入數據,數據就會原封不動地從另一個出口出來,就好像在網絡中挖了一條地道,網絡包從這個地道裏穿過來。它不同於其他的需要從來自多條路徑的網絡包組裝,而是好像存在一條專有的管道一樣,連接在網絡的兩端,因此它的速度一般比普通網絡傳輸要快。

  建立Socket連接至少需要一對套接字,其中一個運行於客戶端,稱為ClientSocket ,另一個運行於服務器端,稱為ServerSocket 。

  套接字之間的連接過程分為三個步驟:服務器監聽,客戶端請求,連接確認。

技術分享圖片

  服務器監聽:服務器端套接字並不定位具體的客戶端套接字,而是處於等待連接的狀態,實時監控網絡狀態,等待客戶端的連接請求。

  客戶端請求:指客戶端的套接字提出連接請求,要連接的目標是服務器端的套接字。為此,客戶端的套接字必須首先描述它要連接的服務器的套接字,指出服務器端套接字的地址和端口號,然後就向服務器端套接字提出連接請求。

  連接確認:當服務器端套接字監聽到或者說接收到客戶端套接字的連接請求時,就響應客戶端套接字的請求,建立一個新的線程,把服務器端套接字的描述發 給客戶端,一旦客戶端確認了此描述,雙方就正式建立連接。而服務器端套接字繼續處於監聽狀態,繼續接收其他客戶端套接字的連接請求。

參考資料:

https://blog.csdn.net/a351945755/article/details/22572529

https://www.cnblogs.com/jking10/p/5525519.html

《網絡是怎樣連接的》

讓女朋友能懂的網絡技術篇之動態代理