反向代理的基本思想非常簡單。它是用戶和后端服務器之間的中間服務器。它的目的可能大不相同但它可以根據URL將請求,路由到各種后端,也可以只是保護免受某些攻擊。實現方式也可以不同,但是步驟的主要順序是完全相同的。反向代理必須接收請求,它必須處理該請求,對該請求執行一些操作,然后轉發給后端。
網絡安全中的網絡代理主要有以下分類:
HTTP代理:WWW對于每一個上網的人都再熟悉不過了,WWW連接請求就是采用的HTTP協議,所以我們在瀏覽網頁、下載數據(也可采用FTP協議)時就是用HTTP代理。它通常綁定在代理服務器的80、3128和8080等端口上。
Socks代理:相應地,采用Socks協議的代理服務器就是SOCKS服務器,是一種通用的代理服務器。Socks是個電路級的底層網關,是DavidKoblas在1990年開發的,此后就一直作為Internet RFC標準的開放標準。Socks不要求應用程序遵循特定的操作系統平臺,Socks代理與應用層代理、HTTP層代理不同,Socks代理只是簡單地傳遞數據包,而不必關心是何種應用協議(比如FTP、HTTP和NNTP請求)。所以,Socks代理比其他應用層代理要快得多。它通常綁定在代理服務器的1080端口上。如果用戶在企業網或校園網上,需要透過防火墻或通過代理服務器訪問Internet就可能需要使用Socks代理。一般情況下,對于撥號上網用戶都不需要使用它。
VPN代理:指在共用網絡上建立專用網絡的技術。之所以稱為虛擬網主要是因為整個VPN網絡的任意兩個結點之間的連接并沒有傳統專網建設所需的點到點的物理鏈路,而是架構在公用網絡服務商ISP所提供的網絡平臺之上的邏輯網絡。用戶的數據是通過ISP在公共網絡(Internet)中建立的邏輯隧道(Tunnel),即點到點的虛擬專線進行傳輸的。通過相應的加密和認證技術來保證用戶內部網絡數據在公網上安全傳輸,從而真正實現網絡數據的專有性。
反向代理:反向代理服務器架設在服務器端,通過緩沖經常被請求的頁面來緩解服務器的工作量。反向代理不需要在使用的電腦上配置 IP 和端口,它的目的剛好和正向代理類比(說相反不太恰當,因為都是為了解決跨網域問題)。例如用戶想要訪問某個公司內部局域網的某臺服務器,如果直接輸入 10.10.10.10 是根本行不通的。但是,如果這個公司有一臺電腦,具備公網 IP,那它就可以做反向代理服務器,用戶訪問這個公網 IP,由反向代理服務器去訪問內網資源,再轉發響應給用戶。
正向代理:正向代理通常用在局域網想訪問萬維網上某服務器的情況,例如國內用戶(墻內也是一個大的局域網)想訪問 YouTube 服務器,如果直接在瀏覽器中輸入 www.youtube.com 通常是無法訪問的。這個時候,如果存在一臺服務器,它可以訪問 YouTube,你可以訪問它,那就可以把它作為一個正向代理服務器。當你想訪問 YouTube 的時候,你把請求發給正向代理服務器,由它轉發請求去訪問 YouTube,并將響應返還給你。