教你如何在5分鐘輕鬆部署squid正向代理

    正向代理是一個位於客戶端和原始服務器(origin server)之間的服務器,爲了從原始服務器取得內容,客戶端向代理髮送一個請求並指定目標(原始服務器),然後代理向原始服務器轉交請求並將獲得的內容返回給客戶端,客戶端才能使用正向代理。

    正向代理的典型用途是爲在防火牆內的局域網客戶端提供訪問Internet的途徑。正向代理還可以使用緩衝特性(由mod_cache提供)減少網絡使用率。

    正向代理允許客戶端通過它訪問任意網站並且隱藏客戶端自身,因此你必須採取安全措施以確保僅爲經過授權的客戶端提供服務。和反向代理不同之處在於,典型的正向代理是一種最終用戶知道並主動使用的代理方式。

    借用知乎兩張圖來解釋正向代理:反向代理爲何叫反向代理?

作用

  • 訪問原來無法訪問的資源,如google

  • 做緩存,加速訪問資源

  • 對客戶端訪問授權,上網進行認證

  • 代理可以記錄用戶訪問記錄(上網行爲管理),對外隱藏用戶信息

 

普通代理

    普通代理:代替局域網內的所有主機訪問公網的網站服務,局域網內的主機需要在自己的瀏覽器中指定代理服務器的ip地址和監聽的端口號
安裝軟件包squid

[root@ECS58979490c134 ~]# yum -y install squid

 

編輯主配置文件/etc/squid/squid.conf

[root@ECS58979490c134 ~]# vim  /etc/squid/squid.conf
http_port 3128       //squid默認監聽的端口號
cache_mem  8MB      //默認緩存容量8MB    
cache_dir  ufs  /var/spool/squid  100  16  256   //設置緩存目錄的大小,緩存文件的格式,大小100M,一級子目錄16個,每個一級子目錄下有256個二級子目錄
access_log /var/log/squid/access.log  squid  //訪問日誌文件,默認開啓
visible_hostname   proxy.eflycloud.com  //默認用環回口的主機名作爲代理服務器的主機名。手動指定主機名時必須與物理接口綁定
maximum_object_size  //允許緩存數據的最大值。不設置時,不限制
reply_body_max_size   //允許通過代理服務器訪問的最大目標對象
http_access allow all    //默認拒絕所有主機
[root@ECS58979490c134 ~]# cat /etc/hosts
127.0.0.1        localhost.localdomain localhost
::1             localhost6.localdomain6 localhost6
192.168.1.254   proxy.eflycloud.com proxy  //物理接口綁定主機名

啓動服務

[root@ECS58979490c134 ~]# service squid start
init_cache_dir /var/spool/squid... Starting squid: .[  OK  ]
[root@ECS58979490c134 ~]# netstat -anptu | grep :3128
Tcp  0  0 0.0.0.0:3128        0.0.0.0:*        LISTEN      10439/(squid)

 

客戶端瀏覽器中設置代理服務器

 

 

透明代理

透明代理:客戶端不需要在本機的瀏覽器裏指定代理服務器的IP地址和監聽的端口號,給客戶端的感覺是直接與公網通訊的。不過客戶端需要指定或者添加透明代理服務器爲網關。

配置透明代理服務器

[root@ECS58979490c134 ~]# vim /etc/squid/squid.conf
http_port  3128  transparent   //透明傳輸
[root@ECS58979490c134 ~]#service squid restart

 

寫防火牆規則,把訪問目標端口是80的請求轉到3128端口。如果不指定端口則是全部請求都會轉到3128端口

[root@ECS58979490c134 ~]# service iptables start     //開啓防火牆服務
[root@ECS58979490c134 ~]#setup
[root@ECS58979490c134 ~]# iptables  -t  filter  -F   //清空表filter防火牆規則
[root@ECS58979490c134 ~]# iptables  -t  nat   -F   //清空表nat防火牆規則
[root@ECS58979490c134 ~]# iptables -t nat  -A PREROUTING -i eth0 -s 192.168.1.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128  //PREROUTING 在路由之前,-i 數據包從哪個口進來,-s 源IP地址, –p 協議, –dport 目標端口, --to-ports 轉到哪個端口
[root@ECS58979490c134 ~]# service iptables save    //永久生效

客戶端將網關指向代理服務器的內網接口的ip地址

[root@ECS58979490c164 ~]# route add default gw 192.168.1.254

睿江雲官網鏈接.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章