1. 程式人生 > >squid 正向代理 透明代理分析

squid 正向代理 透明代理分析

squid無論是正向,反向,透明都可以cache。 connect可以作為正向代理來用。客戶端向代理髮connect方法,代理會根據connect ip:port或host欄位連線上游,並返回給客戶端 HTTP/1.0 200 Connection established, 以後的客戶端(任意協議)請求都會被代理透傳到上                   遊。clientProcessRequest--> if (r->method == METHOD_CONNECT) sslStart()-->連向上遊。 squid transparent(nat代理):經研究是個半透明代理, 客戶端不需要在瀏覽器中指定代理伺服器的地址和埠號,代理服務對客戶端使用者說是“透明”的,使用者甚至並不知道自己已經在使用代理服務了。                              但上游還是知道是經過代理了,這樣對客戶有acl控制的還是不好使。                            通過host欄位走dns或hosts檔案獲取 (或SO_ORIGINAL_DST ,有巨集控制)從客戶端套接字獲取上游的ip和埠(因為netfilter會保留nat或redirect過後的資料包的原始資料流,所以可以獲取 原始dip)。clientTryParseRequest->parseHttpRequest->clientNatLookup.   parseHttpRequest後會通過urlparse重新生成新request,這樣host就換成dip。                             需要配置nat來實現功能。                            iptables -t nat -A PREROUTING -i eth0 -p tcp  --dport 80     -j REDIRECT --to-ports 81                           iptables -t nat -A POSTRO UTING -j MASQUERADE
  • MASQUERADE - SNAT的一種特殊形式,適用於像adsl這種臨時會變的ip上
  • REDIRECT - DNAT的一種特殊形式,將網路包轉發到本地host上(不管IP頭部指定的目標地址是啥)
squid tproxy : 全透明模式,上游也認為連線的是客戶端。 通過設定IP_TPROXY(2.6版本,4.0版本已改為IP_TRANSPARENT)選項用客戶端地址建立socket,然後連線上游(通過request->host欄位或dns獲取或hosts檔案獲取,因為是7層代理,可以通過http頭部獲取dip;如果是4層代理,dip只能通過SO_ORIGINAL_DST 獲取)。                       fwdConnectStart-->用客戶端地址設定套接字
IP_TPROXY-》commConnectStart 目測需要如下配置: /sbin/iptables -t mangle -N DIVERT /sbin/iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT
/sbin/iptables -t mangle -A DIVERT -j MARK --set-mark 1
/sbin/iptables -t mangle -A DIVERT -j ACCEPT
/sbin/ip rule add fwmark 1 lookup 100 /sbin/ip route add local 0.0.0.0/0 dev lo table 100
 iptables -t mangle -A PREROUTING -p tcp --dport 80 -j TPROXY --tproxy-mark 0x1/0x1 --on-port 50080    引數說明: laddr 為代理伺服器的本地監聽套接字的本地ip,此例中省略,即取本地ip; lport 為代理伺服器的本地監聽套接字的本地port,50080(也可以是別的埠,是另一個服務程序監聽的埠,是本控制元件的資料出口); mark_value 為mark值,依據此標記值使用ip rule命令工具為標記資料流進行路由選擇; tproxy優勢:其的優勢在於不對資料包(包頭資訊)進行任何改變(NAT),就可以重定向資料包。 haproxy透明代理用的就是IP_TRANSPARENT ____________________________________________________________ 網橋擷取報文到三層 ebtables中的broute表功能: 用於控制進來的資料包是需要進行bridge轉發還是進行route轉發,即2層轉發和3層轉發。

BROUTING的ACCEPT/DROP和FORWARD中的區別:

ACCEPT

DROP

BROUTING

bridge it

route it

FORWARD

接收該包,當前主Chain後面的rule則不再需要對其進行匹配處理

丟棄該包

相關推薦

squid 正向代理 透明代理分析

squid無論是正向,反向,透明都可以cache。 connect可以作為正向代理來用。客戶端向代理髮connect方法,代理會根據connect ip:port或host欄位連線上游,並返回給客戶端 HTTP/1.0 200 Connection established,

squid緩存服務器 ACL訪問控制 傳統代理 透明代理 squid日誌分析 反向代理

process httpd tex 訪問日誌 單獨 bin 雙網卡 客戶機 requests 緩存代理概述 Squid提供了強大的代理控制機制,通過合理的設置ACL,並進行限制,可以針對源地址、目標地址、訪問的URL路徑、訪問的時間等條件進行過濾。作為應用層的代理服務器軟

【實戰】Squid 緩存服務器 之 傳統代理 + 透明代理

用法 保護 安裝 cmd star 類型 link cep 訪問控制 目錄: 1· Squid代理的概述原理2· 代理的基本類型3· Squid 服務腳本4· 構建代理服務器(傳統代理、透明代理)5· 總結 Squid代理的概述原理 1)代理的工作機制 1.什麽是

正向代理/反向代理/透明代理/透明模式

1、正向代理(forward)是一個位於客戶端和原始伺服器(origin server)之間的伺服器,為了從原始伺服器取得內容,客戶端向代理髮送一個請求並指定目標(原始伺服器),然後代理向原始伺服器轉交請求並將獲得的內容返回給客戶端。客戶端必須要進行一些特別的設定才能使用正向

squid透明代理

代理服務器 瀏覽器 web服務器 防火墻 客戶機 構建透明代理 透明代理:客戶不需要指定代理服務器的地址和端口,而是通過網關,由防火墻的重定向策略將用戶的請求交給代理服務器處理;域名解析有客戶機完成 代理服務器兩個網卡vmnet1 vmnet8 1.基本設置(1)先

squid正向代理

squid正向代理squid正向代理centos系統自帶squid包,安裝命令是:1.安裝squid#yum install -y squid2.修改squid配置文件# vim /etc/squid/squid.conf (配置文件路徑)cache_dir ufs /var/spool/squid 100

正向代理透明代理、反向代理的理解示意圖

linux、代理服務正向代理、透明代理、反向代理的理解示意圖

Squid 正向代理配置

ref nor plist art body 語法 啟動進程 squid color Squid 正向代理配置 1、刪除主配置文件重寫寫入配置 rm -f /etc/squid/squid.conf 2、重新寫入配置正向代理 vim /etc/squid/squid.

Squid正向代理服務器

Squid正向代理服務器Squid代理服務器一、緩存代理概述應用層的代理服務軟件,Squid主要提供緩存加速、應用層過濾控制的功能 1、代理的工作機制第一種情況:Squid服務器中有緩存當客戶機通過代理來請求Web頁面時,指定的代理服務器會先檢查自己的緩存,如果緩存中已經有客戶機需要的頁面,則直接將緩存中的頁

使用squid配置透明代理並對上網行為進行控制

install mes 10.10 path ces 透明代理服務器 限制 BE lB 使用Squid配置透明代理環境:CentOS 6.4 + squid-3.1.10-20.el6_5.3.x86_64 1.檢查squid是否默認安裝,沒有安裝先安裝 rpm -qa

squid-透明代理

nat表 功能 分析 lin 轉換 公網 tin squid服務 mil squid-透明代理透明(transparent)代理:先把上面做的正向代理的客戶端配置部分去掉(firefox和IE的配置)第一步:在squid服務器上打開路由轉發功能# vim /etc/sysc

squid-正向代理

均衡 share client 加速 snat 客戶端 www 打開 eth0 squidhttp://www.squid-cache.org/squid軟件主要有兩大應用:1,代理上網(正向代理,透明代理)2,網站靜態頁面緩存加速(反向代理)三種代理類型正向代理 代理內部

構建Squid傳統代理透明代理

gre $1 火墻 .com ima bin sys 代理服務 maximum 什麽是Squid Squid是一種用來緩沖Internet數據的軟件。它是這樣實現其功能的,接受來自人們需要下載的目標(object)的請求並適當地處理這些請求。也就是說,如果一個人想下載一

如何使用Squid服務來構建=》傳統和透明代理服務器,通俗易懂!

bdb changelog 控制 error log out blog dex web 1、緩存代理概述: 作為應用層的代理服務軟件,Squid主要提供緩存加速和應用層過濾控制的功能 2、代理的工作機制: (1)當客戶機通過代理來請求web頁面時,指定的代理服務器會先檢查自

CentOS上構建squid傳統代理透明代理(squid3.4.6)

src 存放位置 pid run regex img rest roc 客戶端設置 1.1 squid服務基礎 1.1.1 緩存代理概述 1、代理的工作機制 當客戶機通過代理來請求Web頁面時,指定的代理服務器會先檢查自己的緩存,如果緩存中已經有客戶機需要訪問的頁面,則直接

squid傳統代理的另一形式----透明代理

rect 手動 策略 大對象 obj 顯示 process repl 技術分享 構建透明代理 安裝squid支持透明模式 squid透明代理本屬於squid標準傳統代理的一部分,本文特意將透明代理單獨寫出,是因為yum安裝的版本中沒有支持透明模式的模塊。 因此,支持透明代

Centos7 下 squid安裝 以及 傳統代理透明代理的部署

文件大小 cmd 過程 running useradd ply chm nologin 命令 Centos7 下 squid代理服務安裝 代理服務的工作機制 作為應用層的代理服務軟件, Squid主要提供緩存加速和應用層過濾控制的功能。 當客戶機通過代理來請求Web頁面時,

構建Squid代理服務器-傳統代理透明代理、反向代理

roc 端口 rep netfilter 存在 安裝squid host The 空間大小 Squid是Linux系統中最常用的一款開源代理服務軟件,主要提供緩存加速和應用層過濾控制的功能,可以很好的實現HTTP、FTP、DNS查詢以及SSL等應用的緩存代理。 正向代理:

squid 緩存服務器之傳統、透明代理

服務器配置 ext 請求 real p地址 0.12 inter ges 簡介 Squid 簡介   Squid是一種用來緩沖Internet數據的軟件。它是這樣實現其功能的,接受來自人們需要下載的目標(object)的請求並適當地處理這些請求。也就是說,如果一個人想下載一

squid 透明代理配置

內部 並且 代理服務 dst 分析 tar port nor tro 阿銘在教程中已經介紹過squid的安裝和配置,http://study.lishiming.net/chapter22.html 教程中只介紹了初級的正向代理和反向代理,這篇文檔將要介紹透明代理如何配置。