1.安装squid软件包这里用yum来安装。
[root@zh888 ~]# yum -y install squid
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
addons                                                   |  951 B     00:00     
base                                                     | 1.1 kB     00:00     
extras                                                   | 2.1 kB     00:00     
updates                                                  | 1.9 kB     00:00     
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package squid.i386 7:2.6.STABLE21-6.el5 set to be updated
--> Processing Dependency: perl(URI::URL) for package: squid
--> Running transaction check
---> Package perl-URI.noarch 0:1.35-3 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package         Arch          Version                        Repository   Size
================================================================================
Installing:
 squid           i386          7:2.6.STABLE21-6.el5           base        1.3 M
Installing for dependencies:
 perl-URI        noarch        1.35-3                         base        116 k

Transaction Summary
================================================================================
Install       2 Package(s)
Upgrade       0 Package(s)

Total download size: 1.4 M
Downloading Packages:
(1/2): perl-URI-1.35-3.noarch.rpm                        | 116 kB     00:01     
(2/2): squid-2.6.STABLE21-6.el5.i386.rpm                 | 1.3 MB     00:03     
--------------------------------------------------------------------------------
Total                                           239 kB/s | 1.4 MB     00:05     
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : perl-URI                                                 1/2 
  Installing     : squid                                                    2/2

Installed:
  squid.i386 7:2.6.STABLE21-6.el5

Dependency Installed:
  perl-URI.noarch 0:1.35-3

Complete!

2.[root@zh888 ~]# /etc/rc.d/init.d/squid start//启动squid服务
init_cache_dir /var/spool/squid... Starting squid: .       [  OK  ]

[root@zh888 ~]# chkconfig --list squid
squid           0:off   1:off   2:off   3:off   4:off   5:off   6:off

[root@zh888 ~]# chkconfig squid on//让系统开机runlevel 234级别启动

[root@zh888 ~]# chkconfig --list squid
squid           0:off   1:off   2:on    3:on    4:on    5:on    6:off

[root@zh888 ~]# /etc/rc.d/init.d/squid status//查看squid的状态
squid (pid  1646) is running...

3.[root@zh888 ~]# cd /etc/squid/
  [root@zh888 ~]# wc squid.conf
  [root@zh888 ~]# diff squid.conf.default squid.conf
  [root@zh888 ~]#sed -e '/\(^#\|^$\)/d' squid.conf.default > squid.conf

4.贴上自己2.6版本squid的/etc/squid/squid.conf文件

http_port 192.168.100.1:3128 transparent// 指定Squid监听浏览器客户请求的端口号3128
cache_mem 200 MB //配置内存缓存数
cache_swap_high  85//最多允许使用swap 85% ipcache_size 2048  
cache_swap_low  70 // 最小允许ipcache使用swap 70%
cache_log /dev/null //定义日志存放记录
cache_store_log /dev/null //store日志 
emulate_httpd_log on //使用HTTPD登录格式
pid_filename /var/run/squid.pid //pid文件
useragent_log /var/log/squid/useragent.log //用户代理登录文件
ident_timeout 1 seconds //RFC931 身份查找超时:1秒 ident_timeout 1 seconds

cache_dir ufs  /home/samba/software/squid 30000 16 256 //高速缓存目录:/home/samba/software/squid 默认目录是/var/spool/squid类型:ufs大小:30000 一级目录:16 二级目录:256

dns_nameservers 202.101.172.35 //dns域名这个为浙江电信
cache_effective_user squid //以unix用户身份运行
cache_effective_group squid //以unix用户身份运行
cache_mgr enjoygoodboy@163.com//高速缓存管理邮件地址
visible_hostname zh888.com//可见主机名

acl all src 0.0.0.0/0.0.0.0 #允许所有IP访问
acl manager proto cache_object #manager 
acl localhost src 127.0.0.1/255.255.255.255#允午本机IP
acl to_localhost dst 127.0.0.0/8#允许目的地址为本机IP
acl SSL_ports port 443
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443         # https
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl CONNECT method CONNECT#请求方法以CONNECT
http_access allow all#允许所有人使用该代理.因为这里是代理加速web服务器

hierarchy_stoplist cgi-bin ?
access_log /var/log/squid/access.log squid
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern .               0       20%     4320
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
coredump_dir /var/spool/squid
重要提示
由于squid的访问控制规则是从上到下寻找匹配,如果匹配到规则,则停止往下匹配.
所以如果要做访问控制,allow和deny的顺序是很有讲究的.
此外,squid.conf默认的4000多行配置不是白给的,真的很有用.有兴趣深入研究squid的哥们
建议花时间看一下.

5.squid常用命令:
/usr/local/squid/sbin/squid -z 初始化缓存空间
/usr/local/squid/sbin/squid 启动
/usr/local/squid/sbin/squid -k shutdown 停止
/usr/local/squid/sbin/squid -k reconfigure 重新载入配置文件
/usr/local/squid/sbin/squid -k rotate 轮循日志

6.启动nat地址转换启动80到3128转换 eth1为lan地址,eth0为wan地址,具体情况可以自行修改。

echo "iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j SNAT --to-source 192.168.20.xx" >>/etc/rc.local
echo "iptables -t nat -A PREROUTING -i eth1 -p tcp -s 192.168.100.0/24 --dport 80 -j REDIRECT --to-ports 3128" >>/etc/rc.local
 echo "echo 1 >/proc/sys/net/ipv4/ip_forward">>/etc/rc.local

7.最后客户端xp的ip地址设置ip 192.168.100.12 网络掩码 255.255.255.0

网关为192.168.100.1为代理服务器的lan的ip地址,dns为202.101.172.35也可以是192.168.100.1因为这个我是做bind的所以可以设置为192.168.100.1如果没做过域名解析那就添加8.8.8.8即可。

8. 疑惑的问题

1.cat /var/log/squid/access.log 
73 192.168.100.12 TCP_MISS/304 298 GET h - DIRECT/118.144.78.59 总是tcp_miss但是客户端访问没问题。

[root@zh888 squid]# cat /var/log/squid/access.log|gawk '{print $4}'|sort|uniq -c|sort -nr
     40 TCP_MISS/200
     27 TCP_MISS/304
     10 TCP_IMS_HIT/304
      6 TCP_MISS/301
      1 TCP_NEGATIVE_HIT/404
      1 TCP_MISS/204
      1 TCP_MEM_HIT/200
      1

2./etc/squid/squid.conf//

http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
icp_access allow all
http_access allow all
这四句话到底要不加入,但是加入是可以的。

http_access有访问的顺序的,因为默认是全部deny。不过用普通代理也是可以的如图所示:

9.最后介绍一下/var/log/squid/access.log 
相应于HTTP请求,下列标签可能出现在access.log文件的第四个域。

TCP_HIT

Squid发现请求资源的貌似新鲜的拷贝,并将其立即发送到客户端。

TCP_MISS

Squid没有请求资源的cache拷贝。

TCP_REFERSH_HIT

Squid发现请求资源的貌似陈旧的拷贝,并发送确认请求到原始服务器。原始服务器返回304(未修改)响应,指示squid的拷贝仍旧是新鲜的。

TCP_REF_FAIL_HIT

Squid发现请求资源的貌似陈旧的拷贝,并发送确认请求到原始服务器。然而,原始服务器响应失败,或者返回的响应Squid不能理解。在此情形下,squid发送现有cache拷贝(很可能是陈旧的)到客户端。

TCP_REFRESH_MISS

Squid发现请求资源的貌似陈旧的拷贝,并发送确认请求到原始服务器。原始服务器响应新的内容,指示这个cache拷贝确实是陈旧的。

TCP_CLIENT_REFRESH_MISS

Squid发现了请求资源的拷贝,但客户端的请求包含了Cache-Control: no-cache指令。Squid转发客户端的请求到原始服务器,强迫cache确认。

TCP_IMS_HIT

客户端发送确认请求,Squid发现更近来的、貌似新鲜的请求资源的拷贝。Squid发送更新的内容到客户端,而不联系原始服务器。

TCP_SWAPFAIL_MISS

Squid发现请求资源的有效拷贝,但从磁盘装载它失败。这时squid发送请求到原始服务器,就如同这是个cache丢失一样。

TCP_NEGATIVE_HIT

在对原始服务器的请求导致HTTP错误时,Squid也会cache这个响应。在短时间内对这些资源的重复请求,导致了否命中。 negative_ttl指令控制这些错误被cache的时间数量。请注意这些错误只在内存cache,不会写往磁盘。下列HTTP状态码可能导致否定 cache(也遵循于其他约束): 204, 305, 400, 403, 404, 405, 414, 500, 501, 502, 503, 504。

TCP_MEM_HIT

Squid在内存cache里发现请求资源的有效拷贝,并将其立即发送到客户端。注意这点并非精确的呈现了所有从内存服务的响应。例如,某些cache在内存里,但要求确认的响应,会以TCP_REFRESH_HIT, TCP_REFRESH_MISS等形式记录。

TCP_DENIED

因为http_access或http_reply_access规则,客户端的请求被拒绝了。注意被http_access拒绝的请求在第9域的值是NONE/-,然而被http_reply_access拒绝的请求,在相应地方有一个有效值。

TCP_OFFLINE_HIT

当offline_mode激活时,Squid对任何cache响应返回cache命中,而不用考虑它的新鲜程度。

TCP_REDIRECT

重定向程序告诉Squid产生一个HTTP重定向到新的URI(见11.1节)。正常的,Squid不会记录这些重定向。假如要这样做,必须在编译squid前,手工定义LOG_TCP_REDIRECTS预处理指令。

NONE

无分类的结果用于特定错误,例如无效主机名。

相应于ICP查询,下列标签可能出现在access.log文件的第四域。

UDP_HIT

Squid在cache里发现请求资源的貌似新鲜的拷贝。

UDP_MISS

Squid没有在cache里发现请求资源的貌似新鲜的拷贝。假如同一目标通过HTTP请求,就可能是个cache丢失。请对比UDP_MISS_NOFETCH。

UDP_MISS_NOFETCH

跟UDP_MISS类似,不同的是这里也指示了Squid不愿去处理相应的HTTP请求。假如使用了-Y命令行选项,Squid在启动并编译其内存索引时,会返回这个标签而不是UDP_MISS。

UDP_DENIED

因为icp_access规则,ICP查询被拒绝。假如超过95%的到某客户端的ICP响应是UDP_DENIED,并且客户端数据库激活了(见附录A),Squid在1小时内,停止发送任何ICP响应到该客户端。若这点发生,你也可在cache.log里见到一个警告。

UDP_INVALID

Squid接受到无效查询(例如截断的消息、无效协议版本、URI里的空格等)。Squid发送UDP_INVALID响应到客户端。

总结:squid命中率很低原因是:找到cach_hit命中率低的原因了:我的squid.conf配置文件中,cache_mem 200 MB,这个值设置的太低,网上建议应该设置为内存的1/3大小,之后,将其改为cache_mem 300 MB后,用命令: squidclient -h host-squid-01 -p 3128 mgr:info结果如下:

Median Service Times (seconds)  5 min    60 min:
        HTTP Requests (All):   0.12783  0.13498
        Cache Misses:          0.24524  0.30459
        Cache Hits:            0.00865  0.00562  //cach_hit命中率86.5%
        Near Hits:             0.17711  0.18699
        Not-Modified Replies:  0.00286  0.00286
        DNS Lookups:           0.04237  0.04639
        ICP Queries:           0.00000  0.00000

本文转自zh888 51CTO博客,原文链接:http://blog.51cto.com/zh888/653215,如需转载请自行联系原作者

centos5.5+NAT+Squid透明代理总结相关推荐

  1. Squid透明代理内网用户上网

    Squid透明代理内网用户上网 2015-04-19 20:48:38 标签:squid 路由器 代理服务 ip地址 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明 ...

  2. Squid服务器应用(Squid传统代理、Squid透明代理、ACL访问控制、Squid日志分析、Squid反向代理)

    文章目录 一.缓存代理概述 二.Squid代理服务器 三.代理的工作机制 四.Squid代理的类型 五.部署Squid代理服务器步骤 (一).安装Squid服务 (二).构建传统代理服务器 (三).构 ...

  3. debian squid透明代理简单配置

    实验环境 主机用途 IP 客户端 10.10.100.11 网关 10.10.100.12 ,192.168.65.160 网站 192.168.65.161 客户端配置 配置网关 route add ...

  4. 使用squid配置透明代理并对上网行为进行控制

    使用Squid配置透明代理 环境:CentOS 6.4 + squid-3.1.10-20.el6_5.3.x86_641.检查squid是否默认安装,没有安装先安装 rpm -qa squid 假如 ...

  5. 缓存加速CDN——squid代理服务器应用(传统代理,透明代理)

    squid代理服务 一.缓存代理概述 1.1 web代理的工作机制 1.2 阿里云CDN产品介绍与工作原理 1.3 代理的基本类型 1.4 使用代理的好处 二.部署squid传统代理 2.1 实验环境 ...

  6. Squid之传统代理和透明代理解析实验步骤

    目录 一:squid概述 1.1:squid代理的作用 二:squid的代理类型 三:squid传统代理的部署 3.1: 项目介绍 3.2:部署过程 3.3:修改配置文件,编写脚本优化服务启动项 3. ...

  7. centos7配置squid代理(透明代理)

    squid透明代理 实验材料 这里只是先详细的阐述,后面实验环境配置我会详细讲 一台centos7配置squid服务 添加一块网卡 vm1 网卡IP 192.168.100.102 模拟内网 vm2 ...

  8. 学会Squid之传统代理和透明代理一篇就够了!

    文章目录 squid的概念 一:squid概述 1.1:squid代理的作用 1.2:缓存代理概述 1.21:Web代理的工作机制 二:squid的代理类型 三:squid传统代理的部署 3.1: 项 ...

  9. squid代理-----透明代理模式

    目录 一.squid透明代理 二.实验环境 1.squid服务器添加网卡 2.web服务器指定静态路由 3.开启透明代理 4.设置防火墙规则 5.客户机验证 一.squid透明代理 客户端不需要指定代 ...

最新文章

  1. float最大值_float.h库
  2. iMeta期刊纸质版开始免费订阅(包邮)——第一期创刊收藏版
  3. 4.二叉树的先序、中序以及后序遍历的递归写法与非递归写法(LeetCode第94、144、145题)
  4. Python divmod方法
  5. 功能自动化测试工具列表大全
  6. 【django】项目准备
  7. Java中数组的地址问题(hashCode解析):
  8. 解决android扫描二维码时,用户禁止权限报错问题
  9. cisco 模拟器安装及交换机的基本配置实验心得_网络工程师的Python之路 -- 自动监测网络配置变化...
  10. 树莓派4烧录系统后黑屏_原创试用 | 树莓派3B+测评(二)ubuntu系统烧录+彩虹屏问题解决...
  11. c语言字母等腰三角形边框,用C语言编写一个四行*等腰三角形
  12. java程序设计期末考试试题汇总及答案_《JAVA程序设计》期末考试试题汇总及答案...
  13. 提供一套基于SpringBoot-shiro-vue的权限管理思路.
  14. Echarts X轴类型为time时,X轴标签的细化(年月日时分秒)
  15. mysql5.7源码安装 简书_在CentOS7上编译安装MySQL 5.7.13步骤详解
  16. FaceBook创始人扎克伯格称Google+是小号版Facebook
  17. micropython stm32f401_在STM32F401RE(小钢炮CANNON开发板)移植MicroPython
  18. 腾讯乐固加固+app签名+多渠道打包
  19. 高级商务办公软件应用【7】
  20. flow 3d的后处理Analyze打不开是怎么回事呢?

热门文章

  1. python打印tensor_如何在TensorFlow中打印SparseTensor内容?
  2. php7自定义异常处理,基于PHP7错误处理与异常处理方法(详解)
  3. python二维列表转字典_在Python中字符串、列表、元组、字典之间的相互转换
  4. easyUi reload 重定向URL
  5. ios 给网页传值_ios常见的页面传值方式
  6. python中tile的用法_Python:numpy中的tile函数
  7. 一只青蛙一次可以_“七夕青蛙”被玩坏了,哈哈哈哈哈哈哈哈哈哈太好玩了
  8. 树莓派python开发教程_树莓派Raspberry开发从基础到进阶视频+设计资料超详细教程下载...
  9. Navicat连接oracle03135,ORA-03135: connection lost contact的解决方法
  10. python中filter用法_filter用法--Python