当前位置:首页 > CN2资讯 > 正文内容

构建Squid传统代理及透明代理

1天前CN2资讯
  • 什么是Squid

Squid是一种用来缓冲Internet数据的软件。它是这样实现其功能的,接受来自人们需要下载的目标(object)的请求并适当地处理这些请求。也就是说,如果一个人想下载一web页面,他请求Squid为他取得这个页面。Squid随之连接到远程服务器。 并向这个页面发出请求。然后,Squid显式地聚集数据到客户端机器,而且同时复制一份。当下一次有人需要同一页面时,Squid可以简单地从磁盘中读到它,那样数据迅即就会传输到客户机上。当前的Squid可以处理HTTP,FTP,GOPHER,SSL和WAIS等协议。

  • 代理的基本类型
  • 传统代理:即为普通的代理服务,一般以提供HTTP、ftp代理为主,需要客户端在浏览器中指定代理服务器地址和端口(默认为3128)。

  • 透明代理:客户不需要指定代理服务器的地址和端口,而是通过网关,由防火墙的重定向策略将用户的请求交给代理服务器处理;域名解析有客户机完成


  • 安装及运行控制

  • 编译安装squid

  • 编译安装时目录设置为/usr/local/squid

    # tar zxvf squid-3.5.28.tar.gz -C /opt/ # yum install gcc gcc-c++ cmake -y # cd /opt/squid-3.5.28 # ./configure --prefix=/usr/local/squid \ --sysconfdir=/etc //单独将配置文件修改到此目录下 --enable-arp-acl //可以在规则中设置直接通过客户端MAC进行管理,防止客户端使用IP欺骗 --enable-linux-netfilter //使用内核过滤 --enable-linux-tproxy //支持透明模式 --enable-async-io=100 //异步I/O,提升存储性能 --enable-err-language="Simplify_Chinese" //错误信息的显示语言 --enable-underscore //允许URL中有下划线 --enable-poll //使用Poll() 模式,提升性能 --enable-gnuregex // 使用GUN正则表达式 # make && make install
  • 安装完成后创建链接文件、创建用户和组。

    # ln -s /usr/local/squid/sbin/* /usr/local/sbin/ # useradd -M -s /sbin/nologin squid # chown -R squid.squid /usr/local/squid/var/
  • Squid配置文件

    # vim /etc/squid.conf (添加下面3行) cache_effective_user squid #添加 指定程序用户 cache_effective_group squid #添加 指定账号基本组 coredump_dir /usr/local/squid/var/cache/squid # squid -k parse //检查配置文件语法 # squid -z //第一次启动 先初始化缓存目录 # squid //启动服务 # netstat -anpt | grep "squid"

  • 使用Squid服务脚本

  • 为了更方便控制服务的 启动、停止、重载

    # cd /etc/init.d/ # vim squid (创建一个服务脚本) #!/bin/bash #chkconfig: 2345 90 25 PID="/usr/local/squid/var/run/squid.pid" CONF="/etc/squid.conf" CMD="/usr/local/squid/sbin/squid" case "$1" in start) netstat -natp | grep squid &> /dev/null if [ $? -eq 0 ] then echo "squid is running" else echo "正在启动 squid..." $CMD fi ;; stop) $CMD -k kill &> /dev/null rm -rf $PID &> /dev/null ;; status) [ -f $PID ] &> /dev/null if [ $? -eq 0 ] then netstat -natp | grep squid else echo "squid is not running" fi ;; restart) $0 stop &> /dev/null echo "正在关闭 squid..." $0 start &> /dev/null echo "正在启动 squid..." ;; reload) $CMD -k reconfigure ;; check) $CMD -k parse ;; *) echo "用法:$0{start|stop|status|reload|check|restart}" ;; esac # chmod +x squid # chkconfig --add squid # chkconfig --level 35 squid on
  • 构建传统代理

主机 IP 主要软件服务 Squid代理服务器 192.168.100.20 squid Web服务器 192.168.100.30 httpd windows7 192.168.100.50 IE浏览器

如图:

  • web服务器

  • 关闭防火墙

  • 安装httpd服务并且开启

    # systemctl stop firewalld.service # setenforce 0 # yum install -y httpd # systemctl start httpd
  • squid上配置文件

    # vim /etc/squid.conf http_access allow all http_access deny all http_port 3128 cache_mem 64 MB #指定缓存功能所使用的内存空间大小,便于保持访问较频繁的WEB对象,容量最好为4的倍数,单位为MB,建议设为物理内存的1/4 reply_body_max_size 10 MB #允许用户下载的最大文件大小,以字节为单位。默认设置0表示不进行限制 maximum_object_size 4096 KB #允许保存到缓存空间的最大对象大小,以KB为单位,超过大小限制的文件将不被缓存,而是直接转发给用户 # service squid restart
  • 添加防火墙策略

    # iptables -F # setenforce 0 # iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
  • 客户机的代理设置

  • Internet选项---》连接----》局域网设置----ip:squid服务器地址 端口:3128

  • 在浏览器中输入 web网页测试地址:192.168.100.30

  • 验证代理

  • 在squid服务器上查看访问记录

  • 可以看到是192.168.100.50(客户机)请求访问192.168.100.30(web测试页面)

    # tail /usr/local/squid/var/logs/access.log
  • 在web服务器上查看访问记录

  • 可以看到过来访问的是192.168.100.20(代理服务器)

  • 验证传统代理配置成功

    # tail /var/log/httpd/access_log
  • 构建透明代理

  • 配置双网卡内网ens33 外网ens36

主机 IP 主要软件服务 Squid代理服务器 ens33:192.168.100.1 / ens36:12.0.0.1 squid Web服务器 12.0.0.12 httpd windows7 192.168.100.50 IE浏览器
  • 配置透明代理

  • 在http_port配置后面加上 transparent(透明)的选项

    # vim /etc/squid.conf http_port 192.168.100.1:3128 transparent # service squid restart # echo "1" > /proc/sys/net/ipv4/ip_forward
  • 设置iptables的重定向策略

    # iptables -F # iptables -t nat -F # iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128 # iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 3128 # iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
  • 客户端验证

  • 透明代理要取消之前IE浏览器设置的代理地址和端口

  • 清空缓存 在浏览器输入地址:12.0.0.12

  • 验证代理

  • 在squid服务器上查看访问记录

  • 可以看到是192.168.100.50(客户机)请求访问12.0.0.12(web测试页面)

    # tail /usr/local/squid/var/logs/access.log
  • 在web服务器上查看访问记录

  • 可以看是12.0.0.1(代理服务器)访问了12.0.0.12(web测试页面)

  • 可以看出代理配置成功

    # tail /var/log/httpd/access_log

   

  • 若想要在Linxu客户机命令行界面使用代理服务器,必须通过环境变量来指定代理服务器的地址、端口等信息。

  • 在Linux系统中设置代理

    # vim /etc/profile (在末尾添加) HTTP_PROXY=http://192.168.100.20:3128 HTTPS_PROXY=http://192.168.100.20:3128 FTP_PROXY=http://192.168.100.20:3128 NO_PROXY=192.168.10.,192.168.20. export HTTP_PROXY HTTPS_PROXY FTP_PROXY NO_PROXY # source /etc/profile
    你可能想看:

    扫描二维码推送至手机访问。

    版权声明:本文由皇冠云发布,如需转载请注明出处。

    本文链接:https://www.idchg.com/info/24221.html

    分享给朋友:

    “构建Squid传统代理及透明代理” 的相关文章

    如何有效利用闲置VPS:再利用与出租的最佳实践

    闲置VPS,这个词可能对很多人来说并不陌生,尤其是在互联网和云计算技术快速发展的今天。说白了,闲置VPS就是那些购买了却没有得到充分利用的虚拟私人服务器。很多用户在购买VPS后,可能由于项目需求的变化或者个人时间的限制,最终导致这些资源被闲置。这不仅仅是浪费金钱,也让我们的资源没有得到最好的应用。...

    UCloud服务器性能与安全性的全面评测

    UCloud服务器概述 UCloud是一家专注于云计算服务的公司,提供多样的云服务器选项,适合不同业务需求。它不仅满足基本的计算、存储和网络功能,还在高可用性、高性能和安全性上表现出色。通过细致的产品设计,UCloud确保每一位用户都能在稳定的环境中运作,充分利用其提供的技术优势。 在使用UClou...

    QQ邮箱服务器完全指南:配置、安全性与优化技巧

    QQ邮箱服务器概述 QQ邮箱是由腾讯公司推出的一款广受欢迎的电子邮件服务。它的优势不仅在于强大的存储容量,还有丰富的功能,适合个人和企业用户使用。很多人都习惯使用QQ邮箱来发送、接收邮件,因此有必要了解其背后的邮件服务器。 在我使用QQ邮箱的过程中,发现它使用的是腾讯自家搭建的邮件服务器。这些服务器...

    搬瓦工VPS与CN2线路解析:提升网络稳定性与性价比

    搬瓦工(BandwagonHost)是一家值得关注的国外VPS主机服务商,因其性价比高、性能优异而在用户中口耳相传。最初我对搬瓦工的了解并不多,但随着对VPS服务需求的增加,自然也对市场上比较有名的服务商产生了浓厚的兴趣。在我研究的过程中,搬瓦工的特点确实吸引了我的眼球,尤其适合需要稳定网络和较高性...

    Hostwinds LLC:卓越的网络托管服务与高性价比优势

    Hostwinds LLC成立于2010年,位于美国西雅图。这家公司一直专注于提供多种网络托管服务,包括虚拟主机、虚拟专用服务器(VPS)和独立服务器。在这个竞争激烈的市场中,Hostwinds凭借其独特的优势和不断升级的服务赢得了客户的信赖。我个人认为,Hostwinds的历史反映了它对客户需求的...

    如何选择适合的免费服务器:开发者与小团队的最佳指南

    免费服务器概述 在如今的数字时代,免费服务器成为了许多开发者和企业的热门选择。我们常常需要一些力量来支撑我们的项目,而这时候,免费服务器就能提供一个很好的解决方案。简单来说,免费服务器是一种不需要支付费用的虚拟专用服务器,允许用户在一定的使用条件下进行开发、测试或运行小型项目。 我记得刚接触云计算时...