设为首页 收藏本站
查看: 894|回复: 0

[经验分享] squid proxy server简单应用

[复制链接]

尚未签到

发表于 2018-12-26 09:35:26 | 显示全部楼层 |阅读模式
  一、简介

  Squid Cache(简称为Squid)是HTTP代理服务器软件。Squid用途广泛的,可以作为缓存服务器,可以过滤流量帮助网络安全,也可以作为代理服务器链中的一环,向上级代理转发数据或直接连接互联网。
  

  二、功能
  1. 正向代理
  (1)传统代理
  (2)透明代理
  2. 反向代理
  

  正向代理是指:一个位于客户端和目标服务器(比如:百度)之间的服务器,为了从目标服务器取得内容,客户端向代理发送一个请求并指定目标(目标服务器),然后代理向目标服务器转交请求并将获得的内容返回给客户端。
  反向代理是指:以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。
  

  三、简单部署
  1. 传统代理
  在传统代理模式下,客户端必须要一些配置才可以上网。
  环境:

  client:[root@oracle ~]  IP:192.168.111.2(桥接VMnet1)

  proxy:[root@mysql ~]  IP:192.168.111.3(桥接VMnet1)    192.168.1.105(桥接宿主机网卡)
  proxy server:

[root@mysql ~]# yum install squid -y
[root@mysql ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1     #开启IP转发
[root@mysql ~]# sysctl -p   #立即生效
[root@mysql ~]# setenforce 0   #关闭selinux,不然会阻止服务启动
[root@mysql ~]# vim /etc/squid/squid.conf
http_port 192.168.111.3:3128
visible_hostname proxy    #其实还有一些其他参数,现在先不改,ACL默认是将本地地址所在的网段放行的
[root@mysql ~]# squid –k parse
[root@mysql ~]# service squid start
[root@mysql ~]# vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3128 -j ACCEPT
[root@mysql ~]# service iptables restart   #在iptables上放行3128端口  client:


  一些常用选项:
  http_port x.x.x.x:3128    指定监听的IP地址和端口号
  visible_hostname          只有不知道主机的主机名时,才需要设置,如下报错

  minimum_object_size 0 KB     指定缓存对象的最小大小
maximum_object_size 4096 KB   指定缓存对象的最大大小,如:只有大小在0-4M的对象才会被缓存
cache_mem 64 MB           指定缓存的大小
cache_swap_low 90         
cache_swap_high 95         缓存到达总容量的95%就开始清理缓存,清理到90%为止
cache_dir ufs /var/spool/squid 100 16 256  utf为缓存数据的格式
  100为缓存目录分配的磁盘空间(MB)
  16为缓存空间一级子目录的个数
  256为缓存空间二级子目录的个数
  ACL功能:
  定义acl列表             acl列表名称 列表类型 列表内容 …
  针对acl列表进行限制     http_access allow或deny列表名 …
  常用指令:    squid -k parse  检查语法
  squid -z       初始化squid缓存目录

  
  2. 透明代理
  顾名思义,透明代理对客户端来说是透明的,客户端无需任何设置。
  环境:

  client:[root@oracle ~]  IP:192.168.111.2(桥接VMnet1)

  proxy:[root@mysql ~]  IP:192.168.111.3(桥接VMnet1)    192.168.1.105(桥接宿主机网卡)
[root@mysql squid]# vim /etc/squid/squid.conf
http_port 192.168.111.3:3128 transparent   #transparent关键字
[root@mysql squid]# iptables -t nat -I PREROUTING -i eth0 -s 192.168.111.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128
#将从eth0口进来的192.168.111.0/24网段的目标端口为80的重定向3128端口  我们都知道,需要上网还需要DNS,DNS是TCP和UDP的53端口,我们这里的DNS请求发到了公网DNS服务器上(如8.8.8.8),因为我实验的实验的机器是两台内网机器,所以回来的包给了我们的外网防火墙,防火墙根本不知道192.168.111.0网段在哪里,因为192.168.111.0网段是我的两台实验PC私有的,这里就有DNS的问题,解决的办法有3种:
  1. 外网防火墙指一条静态路由到192.168.111.0网段的发给192.168.1.105

  2. 内网架设一台可以上网的DNS服务器,也可将代理服务器配置为DNS服务器

  3. 代理服务器上做NAT,我们这里就是使用第三种方法
[root@mysql ~]# iptables -t nat -A POSTROUTING -s 192.168.111.0/24 -o eth1 -j SNAT --to-source 192.168.1.105  

  3. 反向代理
  环境:
  http server:[root@web ~]#    IP:192.168.3.91(VMnet1)
  squid server:[root@node2 ~]#   IP:192.168.3.96(VMnet1)   192.168.2.97
  Client:192.168.2.88
  squid server:
[root@node2 ~]# vim /etc/squid/squid.conf
http_port 192.168.2.97:80 vhost vport
cache_peer 192.168.3.91 parent 80 0 originserver weight=1 max-conn=30
visible_hostname node2
#cache_peer Web服务器地址 服务器类型 http端口 icp端口 [可选项]  监听端口改为80是为了对应于标准web端口,便于用户使用cache_peer配置项可以用于指定真正的Web服务器的位置。其中,服务器类型对应到目标主机的缓存级别,上游Web主机一般使用“parent”(父服务器);icp端口用于连接相邻的ICP(Internet Cache Protocol)缓存服务器(通常为另一台Squid主机),如果没有,则使用0;可选项是提供缓存时的一些附件参数,例如“originserver”表示该服务器作为提供Web服务的原始主机,“weight=n”指定服务器的优先权重,n为整数,数字越大优先级越高(缺省为1);“max-conn=n”指定反向代理主机到该web服务器的最大连接数。
  

  




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-655935-1-1.html 上篇帖子: zabbix 如何监控squid? 下篇帖子: Linux系列
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表