配置squid 代理

一、什么是squid

   1、 squid可以做代理也可以做缓存

      2、squid缓存不仅可以节省宝贵的带宽资源,也可以大大降低服务器的I/O

      3、squid即可以做正向代理也可以做反向代理

       4、正向代理,squid后面是客户端,客户端上网要通过squid去上;反向代理后面是服务器,服务器返回给用户数据的时候需要走squid

       5、正向代理用在企业的办公环境中,员工上网需要通过squid代理来上网,这样子可以节省网络带宽资源,而反向代理用来搭建网站静态项(图片、html、流媒体、js、css等)的缓存服务器,主要用于网站架构中

 

二、搭建squid正向代理

1、安装squid

yum install -y squid

2、查看squid版本及其编译参数使用squid -v命令

[[email protected]
~]# squid -v

3、清空默认的配置文件

[[email protected]
~]# > /etc/squid/squid.conf

4、将一下模板代码拷贝到squid.conf文件中去

     模板代码:

http_port 3128  #正向代理默认的端口是3128
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
acl localnet src 10.0.0.0/8     # RFC1918 possible internal network
acl localnet src 172.16.0.0/12  # RFC1918 possible internal network
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl SSL_ports port 443
acl Safe_ports port 80 8080         # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localnet
http_access allow localhost
http_access allow all
cache_dir aufs /data/cache 1024 16 256  #本地磁盘上的目录,这个目录是需要自己创建,不然无法启动,16是定义的cache目录下的目录数量
cache_mem 128 MB
hierarchy_stoplist cgi-bin ?
coredump_dir /var/spool/squid
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern \.(jpg|png|gif|mp3|xml) 1440    50%     2880    ignore-reload
refresh_pattern .               0       20%     4320

退出保存

5、创建缓存目录cache

[[email protected]
~]# mkdir -p /data/cache

6、更改权限

[[email protected]
~]# chown -R squid /data/cache

7、启动squid

     需要注意的是在早期的squid版本中需要初始化一下才可以启动

初始化的命令:squid -z

   [[email protected] ~]#
/etc/init.d/squid start

8、检查一下cache目录下是否有生成目录,默认是16个

   [[email protected]
~]# ls /data/cache/

9、常用的命令

squid -kcheck:检查配置文件是否有错误

  squid -k rec :重新加载配置

  service squid restart:重启squid,需要注意的是重启的时候回很慢,可以直接先killall squid然后在重启

10、测试

[[email protected] ~]# curl
-x192.168.21.99:3128
www.baidu.com

如果看到一大串的东西,就说明正向代理已经成功

测试缓存

[[email protected] ~]# curl -x192.168.21.99:3128 http://s3.51cto.com/wyfs02/M02/5B/D5/wKiom1UTub-T8AQUAABa6PsQTa4459_middle.jpg -I

看一下两图的区别

第一张图多了MISS

三、设置黑白名单

   白名单

        要求:允许访问网易126、51cto,其他的拒绝

       1、在/etc/squid/squid.conf配置文件中的acl
CONNECT method CONNECT下添加一下代码:

acl http proto
HTTP

acl good_domain
dstdomain .baidu.com .qq.com

http_access
allow http good_domain

http_access
deny http !good_domain

      如图:

退出保存

2、重置squid服务

[[email protected] ~]# squid -k rec

3、测试   

   1)访问126

[[email protected] ~]# curl -x192.168.21.99:3128 http://ww.126.com -I
HTTP/1.0 200 OK
Date: Tue, 30 Jun 2015 08:45:49 GMT
Expires: Tue, 30 Jun 2015 09:45:49 GMT
Server: nginx
Content-Type: text/html
Content-Length: 95122
Last-Modified: Mon, 18 May 2015 07:29:49 GMT
Cache-Control: max-age=3600
Accept-Ranges: bytes
X-Via: 1.1 zhenjiang167:8109 (Cdn Cache Server V2.0), 1.1 ly17:7 (Cdn Cache Server V2.0)
Age: 187
X-Cache: HIT from chenglinux
X-Cache-Lookup: HIT from chenglinux:3128
Via: 1.0 chenglinux (squid/3.1.10)
Connection: keep-alive

2)访问百度

[[email protected] ~]# curl -x192.168.21.99:3128 http://ww.baidu.com -I
HTTP/1.0 403 Forbidden  #提示被禁止的
Server: squid/3.1.10
Mime-Version: 1.0
Date: Mon, 29 Jun 2015 17:37:27 GMT
Content-Type: text/html
Content-Length: 3264
X-Squid-Error: ERR_ACCESS_DENIED 0
Vary: Accept-Language
Content-Language: en
X-Cache: MISS from chenglinux
X-Cache-Lookup: NONE from chenglinux:3128
Via: 1.0 chenglinux (squid/3.1.10)
Connection: keep-alive

黑名单

1、要求:不允许访问网易126、51cto,其他的允许

2、 在/etc/squid/squid.conf配置文件中的acl CONNECT method CONNECT下添加一下代码:

acl http proto HTTP

acl bad_domain dstdomain .126.com .51cto.com

http_access deny http bad_domain

http_access allow http !bad_domain  #其实把这一样注释掉也可以

检查配置文件

重置配置文件

3、测试

  1)访问51CTO

[[email protected] ~]# curl -x192.168.21.99:3128 http://ww.51cto.com -I
HTTP/1.0 403 Forbidden #提示决绝
Server: squid/3.1.10
Mime-Version: 1.0
Date: Mon, 29 Jun 2015 17:43:25 GMT
Content-Type: text/html
Content-Length: 3264
X-Squid-Error: ERR_ACCESS_DENIED 0
Vary: Accept-Language
Content-Language: en
X-Cache: MISS from chenglinux
X-Cache-Lookup: NONE from chenglinux:3128
Via: 1.0 chenglinux (squid/3.1.10)
Connection: keep-alive

2)访问jd.comOK

[[email protected] ~]# curl -x192.168.21.99:3128 www.jd.com -I
HTTP/1.0 200 OK 
Server: JDWS
Date: Tue, 30 Jun 2015 08:57:43 GMT
Content-Type: text/html; charset=gbk
Vary: Accept-Encoding
Expires: Tue, 30 Jun 2015 08:58:12 GMT
Cache-Control: max-age=120
Age: 24
Content-Length: 160864
X-Cache: MISS from chenglinux
X-Cache-Lookup: MISS from chenglinux:3128
Via: BJ-M-YZ-NX-80(HIT), http/1.1 WH-CT-1-JCS-105 ( [cRs f ]), 1.0 chenglinux (squid/3.1.10)
Connection: keep-alive

IE浏览器设置代理设置,具体如图:

4)在浏览器测试51CTO提示访问被拒绝

四、反向代理

    1、修改端口

         把之前的http_port 3128修改为:

http_port
80  accel vhost vport

  2、在刚才的80端口下面添加一下代码:

cache_peer 123.125.119.147 parent 80 0 originserver name=a #这里是固定的写法,a表示的是代理的一个域名的简写

cache_peer_domain a www.qq.com  
#上面的IP地址就是这里域名的IP地址

cache_peer
61.135.169.125 parent 80 0 originserver name=b

cache_peer_domain b www.baidu.com

退出保存

配置文件解释:

cache_peer:为配置后端的服务器及IP端口

name:为后面要配置的域名,和cache_peer_domain相对应

  3、检查配置文件

[[email protected] ~]#
squid -kcheck

      重置配置文件

[[email protected] ~]#
squid -k rec

4、在浏览器中测试

     需要修改的就是在浏览器中把3128端口要改成80端口

1)访问126.com被拒绝

2)访问baidu

5、如果要代理一台主机上的所有域名,需要写成这样:

   cache_peer
192.168.10.111 80 0 originserver

  后面也不需要写cache_peer_domain了

笔记有错误的地方还请大神指正,小白会继续修改 

时间: 2024-10-06 06:26:17

配置squid 代理的相关文章

linux下配置squid代理

代理工具.×××工具 yum install -y squid    (安装squid服务) 配置正向代理(企业中用于访问控制等) vim /etc/squid/squid.conf    (编辑squid配置文件) ...... acl http proto HTTP    (添加协议) acl good_domain dstdomain baidu.com    (设置白名单) http_access allow good_domain    (允许白名单访问) http_access de

使用CentOS7配置Squid代理

其实之前配过一个squid,只是由于太懒,网上随便搜了一个教程,用了默认端口并且没有添加用户认证.某天不幸的被爬虫扫到,被用来发了半个月的垃圾邮件..直到有一天登录邮箱,看到了一大坨警告邮件,才意识到问题的严重.惊了个呆之后,赶紧重配一遍-.- 我这里是用squid配置了一个带用户认证的普通代理. 安装 安装过程十分简便,只需要安装一下squid,一条命令搞定.我这里装的是squid3.3. yum install squid rpm -qa | grep squid squid-3.3.8-1

配置squid,实现正向代理

环境:CentOS 6.5 代理主机ip:192.168.3.224,10.0.0.10 内网主机ip:10.0.0.11 安装前准备 1.关闭selinux [[email protected] ~]# setenforce 0 [[email protected] ~]# getenforce permissive [[email protected] ~]# vim /etc/selinux/config SELINUX=disabled 2.关闭防火墙filter表,设置防火墙端口转发规

squid代理配置

squid:作用:代理,缓存,不可访问的通过代理可访问. 正向代理:squid后面是客户端,客户端上网要通过squid常用在企业办公环境中,节省网络带宽资源,员工上网需通过squid代理. 用户<--->访问<--->代理服务器<--->防火墙|资源服务器反向代理:squid后面是服务器,服务器返回给用户数据需要走squid.用在网站架构中,常用来搭建网站静态项(图片,css,html,js,流煤体等)缓存服务器. 用户<--->代理服务器<---&g

ubuntu squid 代理服务器安装配置

安装: 下载安装包 http://pan.baidu.com/s/1mitvwpE 解压 tar -xzvf file.tar.gz 编译: 进入sbin目录  执行 ./configure --prefix=/usr/local/squid --sysconfdir=/etc --enable-gnuregex --enable-icmp --enable-snmp --enable-default-err-language="Simplify_Chinese" --enable-k

squid配置正反代理

squid配置 1. 什么是squid squid可以做代理也可以做缓存 squid缓存不仅可以节省宝贵的带宽资源,也可以大大降低服务器的I/O. squid不仅可以做正向代理,又可以做反向代理. 正向代理,squid后面是客户端,客户端上网要通过Squid去上:反向代理,squid后面是服务器,服务器返回给用户数据需要走squid. 正向代理用在企业的办公环境中,员工上网需要通过squid代理来上网,这样可以节省网络带宽资源.而反向代理用来搭建网站静态项(图片.html.流媒体.js.css等

【树莓派】Squid代理以及白名单配置

Squid安装: sudo apt-get install squid3 -y 首先,建议备份一下这个配置文件,以免配错之后,无法恢复,又得重新安装: sudo cp /etc/squid3/squid.conf /etc/squid3/squid.conf.default.bak squid log查看: sudo tial -f /var/log/squid3/access.log 服务启动停止与查看状态: sudo service squid3 start sudo service squ

squid 代理服务器安装配置

ubuntu16.04 安装squid代理服务器配置 本文参考 http://www.cnblogs.com/newflypig/archive/2012/09/28/2862000.html 1,删除已有squid服务 sudo apt-get autoremove squid sudo apt-get autoremove squid-common 如果出现错误 Could not get lock /var/lib/dpkg/lock 执行步骤 sudo rm -rf /var/cache

squid 代理配置

vi /etc/squid/squid.conf cache_mem 64 MB cache_dir ufs /var/spool/squid 1000 16 256 cache_effective_user squid cache_effective_group squid dns_nameservers 8.8.8.8 cache_access_log /var/log/squid/access.log cache_log /var/log/squid/cache.log cache_sto