VPN
很不清晰的一個詞,讀相關資料時困惑很久。
先說一個觀念,VPN是一種概念,不是一個技術。他有很多方式實現,很簡單的一句話,但很多人都不知道,就連網路上文章也是一知半解在講解,我一直到後來才理解。
VPN,是一個概念,但所有實現的VPN他們都有一個共通點:ISP無法取得過程。
拿VPN當跳板這件事來舉例子吧,VPN服務商通過某種方式讓你與VPN Server建立連接,VPN Server再去向你要訪問的網站做HTTP Request,ISP知道電腦與VPN連線,但VPN連線後具體做了甚麼ISP無法知道,他只知道甚麼時候連過去了,甚麼時候不連了
Proxy
proxy又分為
- Http Proxy
- Tunnel
- Reverse proxy
- SOCKS Proxy
- Transparent Proxies
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會有許多節點,使用戶能更快解析網站,但本身並不對真正的站點進行訪問