squid传统代理的另一形式----透明代理

构建透明代理

安装squid支持透明模式

  • squid透明代理本属于squid标准传统代理的一部分,本文特意将透明代理单独写出,是因为yum安装的版本中没有支持透明模式的模块。
  • 因此,支持透明代理的模块需要在手动编译安装时加入。

tar zxvf squid-3.4.6.tar.gz -C /opt/

cd /opt/squid-3.4.6

./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           //使用GNU正则表达式

实验环境

服务器 操作系统 IP地址 使用软件
squid代理服务器 centos7.3 内192.168.100.1 外12.0.0.1 squid
外网web服务器 centos7.3 12.0.0.12 http
client windows7 192.168.100.100 IE浏览器

实验拓扑展示

透明代理配置过程

squid代理服务器设置

1、添加网卡,内网卡ens33,外网卡ens37

  • 网卡添加完成后修改IP,此过程建立在已经安装好squid缓存代理服务器基础上。
  • 网卡配置如下图所示:

  • 接着打开路由转发功能:

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1   //添加打开路由转发功能

sysctl -p //立即生效

  • 或者这样打开路由转发功能:

echo "1" > /proc/sys/net/ipv4/ip_forward

2、配置squid代理服务配置文件

ln -s /usr/local/squid/sbin/* /usr/local/sbin/

useradd -M -s /sbin/nologin squid

chown -R squid.squid /usr/local/squid/var/
vim /etc/squid/squid.conf

# Squid normally listens to port 3128
http_port 192.168.100.1:3128  transparent  //设置为内网端口代理
cache_mem 64 MB                   #指定缓存功能所使用的内存空间大小,便于保持访问较频繁的WEB对象,容量最好为4的倍数,单位为MB,建议设为物理内存的1/4
reply_body_max_size 10 MB         #允许用户下载的最大文件大小,以字节为单位。默认设置0表示不进行限制
maximum_object_size 4096 KB       #允许保存到缓存空间的最大对象大小,以KB为单位,超过大小限制的文件将不被缓存,而是直接转发给用户

...
cache_effective_user squid        #添加   指定程序用户
cache_effective_group squid       #添加   指定账号基本组
coredump_dir /usr/local/squid/var/cache/squid     #在这一行上方添加

systemctl restart squid.service

3、写入防火墙nat策略

iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128   //允许http端口服务

iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 3128   //允许https端口服务

iptables -I INPUT -p tcp --dport 3218 -j ACCEPT  

4、外网web服务器配置

  • 将外网网卡IP设置为12.0.0.12,启动HTTP服务即可。

5、客户端访问

  • 客户端访问时不需要通过在浏览器中设置代理功能,直接访问IP地址即可。访问结果如下:

原文地址:http://blog.51cto.com/13659253/2150048

时间: 2024-09-29 21:51:16

squid传统代理的另一形式----透明代理的相关文章

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

关于Squid的简介及安装部署过程可以参考博文:Squid代理服务器安装及部署 传统代理的实现最为简单,透明代理还需要结合默认默认路由.防火墙策略等一起来完成. 构建传统代理 使用传统代理的特点在于:客户机的相关程序(如IE浏览器.QQ聊天软件)必须指定代理服务器的地址.端口等基本信息. 案例环境 案例实施步骤大致分为: 1.Squid服务器的配置: 2.客户机的代理设置: 3.验证代理服务器. 案例实施 关于搭建Web服务器可以参考博文:CentOS 7 利用Apache搭建Web网站服务 如

llinux企业常用服务---squit透明代理

注意: 在传统代理的基础上配置 透明代理需指定网关 1.配置透明代理: 1)修改配置文件:支持透明代理 [[email protected] ~]# vi /etc/squid.conf http_port 192.168.100.150:3128 transparent   ##将http_port 3128修改为支持透明代理 [[email protected] ~]# /etc/init.d/squid reload [[email protected] ~]# netstat -utpl

.net 真实代理和透明代理的交互

1 1.本地代理调用 2 3 4 using System; 5 using System.Runtime.Remoting ; 6 using System.Runtime.Remoting.Services ; 7 using System.Runtime.Remoting.Activation ; 8 using System.Runtime.Remoting.Proxies ; 9 using System.Runtime.Remoting.Messaging ; 10 11 12 /*

用nginx搭建http透明代理

背景 代理我们经常听,在技术层面我们谈论的代理往往是非透明代理,那么既然有非透明代理那就存在有透明代理.我们先看看什么是透明代理,引用百度百科的一句话可以描述明白 透明代理的意思是客户端根本不需要知道有代理服务器的存在.既然透明代理是感知不了代理的存在,那么非透明代理就是可以感知到代理的存在了,最简单的方式就是你要去访问网站A,在正常情况下,网站A看到访问是来自于你的终端的(比如源IP地址是你自己浏览器的),假如你的终端是通过代理来访问网站A的,在普通非透明代理情况下,网站A看到请求是来自于你的

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

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

squid缓存服务器 ACL访问控制 传统代理 透明代理 squid日志分析 反向代理

缓存代理概述 Squid提供了强大的代理控制机制,通过合理的设置ACL,并进行限制,可以针对源地址.目标地址.访问的URL路径.访问的时间等条件进行过滤.作为应用层的代理服务器软件,Sqiod主要提供了缓存加速和引用层过滤控制能力 代理的工作机制 当客户机通过代理来请求 Web 页面时,指定的代理服务器,会先检查自己的缓存如果缓存中已经有客户机需要访问的页面,则直接将缓存中的页面内容反馈给客户机:如果缓存中没有客户机需要访问的页面,则用代理服务器向Internet 发送访问请求. 由于客户机的W

构建Squid代理服务器-传统代理、透明代理、反向代理

Squid是Linux系统中最常用的一款开源代理服务软件,主要提供缓存加速和应用层过滤控制的功能,可以很好的实现HTTP.FTP.DNS查询以及SSL等应用的缓存代理. 正向代理:根据实现的方式不同,代理服务可分为传统代理和透明代理. 传统代理:普通的代理服务,多见于Internet环境,必须在客户机的浏览器.QQ聊天工具.下载软件等程序中手动设置代理服务器对的地址和端口,才能使用代理服务器来访问网络.对于网页浏览器,访问网站时的域名解析请求会发送给指定的代理服务器. 透明代理:提供与传统代理相

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

一.缓存代理概述 1.缓存代理概述 作为应用层的代理服务软件,Squid主要提供缓存加速和应用层过滤控制的功能. 2.代理的工作机制 当客户机通过代理来请求Web页面时,指定的代理服务器会检查自己的缓存,如果缓存中已经存在客户机需要访问的页面,则之间将缓存中的页面内容反馈给客户机:若代理服务器中的缓存中没有客户机需要访问的页面,则由代理服务器向Internet发送访问请求,再将获得的页面数据保存到缓存中,并发送给客户机. 二.手工编译安装squid 1.解压缩squid安装文件到/opt tar

squid 缓存服务器之传统、透明代理

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