LazyBone's blog

July 31, 2024Last Updated: August 7, 2024

我眼中的VPN、Proxy、CDN

Security1.1 min to read

VPN

很不清晰的一個詞,讀相關資料時困惑很久。

先說一個觀念,VPN是一種概念,不是一個技術。他有很多方式實現,很簡單的一句話,但很多人都不知道,就連網路上文章也是一知半解在講解,我一直到後來才理解。

VPN,是一個概念,但所有實現的VPN他們都有一個共通點:ISP無法取得過程。

拿VPN當跳板這件事來舉例子吧,VPN服務商通過某種方式讓你與VPN Server建立連接,VPN Server再去向你要訪問的網站做HTTP Request,ISP知道電腦與VPN連線,但VPN連線後具體做了甚麼ISP無法知道,他只知道甚麼時候連過去了,甚麼時候不連了

Proxy

proxy又分為

Http Proxy

只講比較廣為人知的Http

電腦跟Proxy做連線,由Proxy去請求目標位址要資料,ISP一定知道,Proxy通常是Client為了加速訪問網站而設置的,當然也有人用來做其他用途,例如不斷換Proxy Server來規避IP封鎖、訪問限定特定國家IP的網站等等

User-Agent←→Proxy←→Server

但如果使用https,除非做到兩層TLS(就是那兩個箭頭處),否則無法進行,這時就衍伸出隧道的概念。

Tunnel - 隧道

隧道做的事就是跑腿,對User-Agent開放一個端口給他連,對訪問目標連線,再把訪問結果給UA

這時就可以說到VPN了,VPN其中一個實現技術就是Tunnel,走隧道,VPN proxy

Reverse proxy(就是CDN) - 反向代理

User-Agent←→Reverse proxy←→Server

Server端找代理,客戶訪問不知道真實的提供資訊的Server真實IP

VPN是一個概念參考自:

[Cisco Learning Network](https://learningnetwork.cisco.com/s/question/0D53i00000Kt2skCAB/vpn-vs-tunneling)

CDN

與proxy server不同,CDN是主動把緩存塞到其他伺服器,當客戶端進行訪問的時候,會訪問其Cache Node,CDN會有許多節點,使用戶能更快解析網站,但本身並不對真正的站點進行訪問