1. 程式人生 > >Proxy(代理)伺服器

Proxy(代理)伺服器

代理伺服器:---代理伺服器必須有DNS地址。如果開啟轉發需要在客戶端設定DNS地址   NAT:是直接與目標伺服器通訊的。也就是直接訪問的baidu伺服器,目標地址是baidu伺服器的地址,所以必須要有DNS來解析主機名。    如果是通過代理客戶端是沒有設定DNS的,這是因為客戶端會將資料包先發給代理伺服器,然後再由代理伺服器將資料包轉發出去的。也就是產生了2個不同的資料包。   當用戶訪問伺服器的時候,會先請求代理伺服器,代理伺服器會檢視自己的快取是否有請求的網頁,如果有直接返回給使用者,如果沒有,則向伺服器傳送請求,伺服器響應給代理伺服器,當代理伺服器收到請求後,會將請求被分到自己的快取中,然後再拷貝一份發給使用者。如果再有使用者訪問這個網頁,代理伺服器檢查到自己的快取中有使用者想要的網頁,則會直接返回給使用者。這樣就很大的節省了伺服器的頻寬。
啟用代理伺服器的轉發功能:在做完NAT後需要轉發功能:    echo  1 > /proc/sys/net/ipv4/ip_forward # 臨時修改    vim /etc/sysctl.conf # 修改配置檔案中 :net.ipv4.ip_forward = 1    sysctl -p # 修改後立即生效。 開啟轉發後需要設定客戶端的 DNS 防火牆規則:    iptables -I INPUT -p tcp --dport 8080 -j ACCEPT   iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE
#開啟NAT,轉發 需要注意的是:在開啟轉發的時候需要設定客戶端--DSN    iptables -t nat -I PREROUTING 1 -s 192.168.10.0/24 -p tcp --dport 80 -j REDIRECT  --to-ports 8080  #將10 網段的所有請求80埠的,重定向到 8080埠(8080是代理服務的埠),需要在代理服務的配置檔案中 開啟轉發:http_port  8080  transparent 出現錯誤: WARNING: Could not determine this machines public hostname. Please configure one or set 'visible_hostname'.
visible_hostname 自己的主機名(#vim /etc/squid/squid.conf新增即可) squid服務啟動日誌: /var/log/squid/squid.out 安裝軟體包:      yum  -y  install squid
主目錄:      /etc/squid/ 需要最關心的配置檔案;squid.conf
配置檔案: 1、acl 給網段定義一個別名。    需要注意的是:如果是具體的IP地址的話子網掩碼應該寫 32    192.168.10.123/32  否則會報錯    acl  baidu  dstdomain  .baidu.com   #目標地址    acl  test   url_regex  ^http://www.kun.cc/test/.*\.txt   # 以定義正則,定義不允許訪問型別的檔案。
2、http_access:允許哪些網段可以使用代理伺服器。後面跟的是定義好的別名。   需要注意的是:http_access 的順序很重要。是從上至下匹配的,如果上一條匹配成功就不會再往下匹配了。
3、http_port  3128:客戶端與代理伺服器建立連線訪問的埠號。    3128用的不多,用的比較多的是8080
不允許訪問baidu,其他網站是允許的 
這裡有個細節需要注意:   fanli  baidu  2行的順序,因為fanli是指的是當前的網段是允許的,而訪問baidu是拒絕的,在匹配的時首先匹配允許了網段是可以訪問的,所以就不會匹配拒絕baidu這行。所以當再訪問baidu的時候也是可以正常訪問的。如果調換位置就會拒絕baidu了。

拒絕訪問指定型別的字尾的網頁:

字尾為:.txt的網站不可以訪問:
根據上面的test別名:    cache  deny   test #凡是 .txt 結尾的網站都不做快取。 allowe 則是:做快取
配置檔案中:cache_dir  ufs /var/spool/squid  100  16  256   代理伺服器快取網頁的存放目錄。   :100 #代理伺服器會在這個目錄裡面建立一個100M的告訴快取,硬碟當中建立   :16 #這個目錄下有16個子目錄   :256 #這個16個子目錄下又有256個子目錄
其中:cache_mem 10 MB:是從記憶體中劃分10MB來做儲存,這是個預設選項。儲存:訪問比較頻繁的網頁
重新指定squid的快取目錄位置:---用於存放快取的伺服器可以做邏輯卷,在邏輯捲上進行擴充。



當快取無限增加的時候,設定快取的限制:      cache_swap_low  90      cache_swap_high   95 #當磁碟使用率達到95%的時候,刪除舊的快取,直至使用率為:90%
系統快取時間:
其中:     1440:為最小快取時間:單位分鐘     10080:最大快取時間:單位分鐘     20%:當快取的檔案時間大於  10080 的20%時候,系統就會標記為舊的資料。 防火牆做NAT:這裡做的是SNAT:      因為有的人會避開瀏覽騎上的代理,從而可以直接使用NAT,上網。所以這裡做了 SNAT    iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE 需要將FORWARD中的過濾去掉    iptables -nL # 不反向解析,檢視防火牆列表    iptables -nL --line-numbers # 檢視時標記行號
squid監控:---基於apache的,所以需要安裝apache
安裝完後直接輸入命令:  sarg
進入到字型檔案所在目錄位置:
建立目錄:報錯的目錄是預設是不存在的,所以需要手動建立
將字型檔案拷貝到建立的目錄下
在圖形介面的網頁中輸入: localhost/sarg      可以檢視客戶端訪問的記錄