Squid是Linux系统中最常用的一款开源代理服务软件,主要提供缓存加速和应用层过滤控制的功能,可以很好的实现HTTP、FTP、DNS查询以及SSL等应用的缓存代理

透明代理:提供与传统代理相同的功能和服务,多见于局域网环境,其区别在于客户机不需要指定代理服务器的地址和端口,而是通过默认路由、防火墙策略将Web访问重定向,实际上仍然交给代理服务器处理  网页浏览器访问网站时的域名解析请求会优先发给DNS服务器

构建透明代理服务器

基于局域网主机通过Linux网关访问Internet的环境

一台Linux主机作为Internet上的web服务器(CentOS7 192.168.94.22 NAT),启动httpd服务

一台Linux主机作为局域网网关服务器(CentOS7 192.168.111.11 VMnet3),并构建Squid服务(192.168.94.11 NAT)提供代理服务

一台windows主机(192.168.111.22 VMnet3)作为局域网的客户机,只需正确设置IP地址、默认网关

网关服务器添加网卡,内网卡ens37 192.168.111.0/24 ,外网卡ens33 192.168.94.0/24

安装squid支持透明模式

[root@squid ~]# rz     # 上传源码包

[root@squid ~]# tar xf squid-4.2--r6d8f397.tar.gz
[root@squid ~]# mv squid-4.2--r6d8f397 /opt/squid
[root@squid ~]# cd /opt/squid
[root@squid squid]# ./configure --prefix=/usr/local/squid \
--sysconfdir=/etc \
--enable-arp-acl \
--enable-linux-netfilter \
--enable-linux-tproxy \
--enable-async-io= \
--enable-err-language="Simplify_Chinese" \
--enable-underscore \
--enable-poll \
--enable-gnuregex && make -j && make -j install
--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正则表达式 编译有点慢 , 先配置web服务器
[root@web ~]# yum -y install httpd
[root@web ~]# echo "<h1>Squid-Web1</h1>" > /var/www/html/index.html
[root@web ~]# systemctl start httpd

再配置Windows网络 IP和内网一个网段 , 网关指定内网网卡IP 

编译的很慢 , 先把后续的准备工作做了 , 在squid上再开一个终端 

开启路由转发

[root@squid squid]# vim /etc/sysctl.conf
# 添加 net.ipv4.ip_forward =
[root@squid squid]# sysctl -p
# 或者临时开启
[root@squid squid]# echo "" > /proc/sys/net/ipv4/ip_forward

写入防火墙nat策略

[root@squit squid]# iptables -F
[root@squit squid]# iptables -F -t nat
[root@squit squid]# iptables -t nat -I PREROUTING -i ens37 -s 192.168.111.0/ -p tcp --dport -j REDIRECT --to 3129  # 后期配置squid配置文件里的监听端口为3129
[root@squit squid]# iptables -t nat -I PREROUTING -i ens37 -s 192.168.111.0/ -p tcp --dport -j REDIRECT --to
[root@squit squid]# iptables -I INPUT -p tcp --dport -j ACCEPT

配置squid配置文件

之前用3.6版本的squid做透明代理 监听的端口就是IP:3128  这个4.2新版本可能默认监听端口就是3128所以可能端口冲突 , 但是也没有提示 , 官方手册也没找到具体原因 , 弄了两天 , 不是服务起不来就是跑起来了没效果 , 果断换端口

[root@squid squid]# ln -s /usr/local/squid/sbin/* /usr/local/sbin/
[root@squid squid]# useradd -M -s /sbin/nologin squid
[root@squid squid]# chown -R squid.squid /usr/local/squid/var/
[root@squid squid]# vim /etc/squid.conf
# 在 http_port 3128 这行的下面添加
http_port 192.168.111.11:3129 transparent
cache_mem 64 MB           # 指定缓存功能所使用的内存空间大小,便于保持访问较频繁的WEB对象,容量最好为4的倍数,单位为MB,建议设为物理内存的1/4
maximum_object_size 4096 KB    # 允许保存到缓存空间的最大对象大小,以KB为单位,超过大小限制的文件将不被缓存,而是直接转发给用户
# 在 coredump_dir /usr/local/squid/var/cache/squid 这一行上方添加
cache_effective_user squid # 指定程序用户
cache_effective_group squid # 指定账号基本组 # 在 http_access deny all 这行上面添加 http_access allow all
# 把 cache_dir ufs /usr/local/squid/var/cache/squid 100 16 256 这行的注释去掉

开启squid服务

[root@squit squid]# squid -z
[root@squit squid]# squid
[root@squit squid]# netstat -antup|grep squid
tcp 192.168.111.11: 0.0.0.0:* LISTEN /(squid-)
tcp6 ::: :::* LISTEN /(squid-)
udp 0.0.0.0: 0.0.0.0:* /(squid-)
udp6 ::: :::* /(squid-)

测试

查看squid代理服务器日志

查看Web服务器日志

显示的是squid服务器的IP , 并不能看到用户IP

测试成功 

CentOS 7 Squid代理服务器正向代理-透明代理的更多相关文章

  1. CentOS 7 Squid代理服务器正向代理-传统代理

    Squid是Linux系统中最常用的一款开源代理服务软件,主要提供缓存加速和应用层过滤控制的功能,可以很好的实现HTTP.FTP.DNS查询以及SSL等应用的缓存代理 传统代理:普通的代理服务,多见于 ...

  2. CentOS安装squid代理服务器

    Squid是一个Linux系统下优秀的代理服务器软件.Squid可以配置普通上网代理(正向代理).反向代理.透明代理.系统是CentOS6.2.Squid主机IP为192.168.1.100. 安装s ...

  3. CentOS 7 Squid代理服务器反向代理

    Squid反向代理 将不同的URL请求分发到后台不同的Web服务器上,通过squid反向代理,可以加速网站的访问速度,同时互联网用户只能看到反向代理服务器的地址,加强网站的访问安全 Squid反向代理 ...

  4. linux下正向代理/反向代理/透明代理使用说明

    代理服务技术对于网站架构部署时非常重要的,一般实现代理技术的方式就是在服务器上安装代理服务软件,让其成为一个代理服务器,从而实现代理技术.常用的代理技术分为正向代理.反向代理和透明代理.以下就是针对这 ...

  5. Squid普通代理&&透明代理&&反向代理学习

    普通代理                                                              背景                                 ...

  6. 正向代理 & 反向代理 & 透明代理

    正向代理(Forward Proxy) 概述 一般情况下,如果没有特别说明,代理技术默认说的是正向代理技术.关于正向代理的概念如下: 正 向代理(forward)是一个位于客户端[用户A]和原始服务器 ...

  7. 理解squid的正向和反向代理

    1.相同点: 访问的走向都是:客户端 -> 代理服务器 ->真实服务器 ->代理服务器->客户端 2.不同点:正向代理语义上更侧重于,让代理服务器去帮忙请求某个网址.让代理服务 ...

  8. squid 代理服务器应用

    squid 代理服务器应用 1.Squid 代理服务器 : Squid 主要提供缓存加速.应用层过滤控制的功能.  代理的工作机制: 代替客户机向网站请求数据,从而可以隐藏用户的真实IP地址. 将获得 ...

  9. 使用Squid做代理服务器,Squid单网卡透明代理配置详解(转)

    使用Squid做代理服务器 说到代理服务器,我们最先想到的可能是一些专门的代理服务器网站,某些情况下,通过它们能加快访问互联网的速度.其实,在需要访问外部的局域网中,我们自己就能设置代理,把访问次数较 ...

随机推荐

  1. 理解java关键字Synchronized(学习笔记)

    之前学习了线程的一些相关知识,今天系统的总结下来 目录 1. Java对象在堆内存中的存储结构 2. Monitor管程 3. synchronized锁的状态变换以及优化 4. synchroniz ...

  2. iOS12系统应用发送邮件中的附件

    iOS12系统应用发送邮件中的附件 iOS12系统应用发送邮件中的附件,如果发送邮件的内容很多,或者包含文档.图片等,可以以附件的形式进行发送.此时需要使用addAttachmentData(_:mi ...

  3. PostgreSQL自学笔记:5 数据类型和运算符

    5 数据类型和运算符 5.1 PostgreSQL 数据类型介绍 5.1.1 整数类型 整型类型 字节 取值范围 smallint 2字节 -2^15 ~ 2^15 int integer 4字节 - ...

  4. IDEA_构建Maven项目报错(1)

    构建报错: [ERROR] Plugin org.apache.maven.plugins:maven-archetype-plugin:RELEASE or one of its dependenc ...

  5. 版本管理_svn_检出_更新_提交_本机 MAC 地址_冲突

    版本管理 git svn [subversion] 实现集中式的版本控制工具软件 来源于最初的工程图纸. 需求: 备份还原 协同修改 权限控制 弊端:集中式(管理方便,但是如果中心服务器瘫痪,整个开发 ...

  6. 逆向工程-真码保存在系统文件破解QQ游戏对对碰助手

    1)注册栏中输入任意值测试 1.2)记录弹出的关键字对话框 2.1)发送至PEID进行查壳 2.2)发现无壳 2.3)将软件载入OllyDBG程序 2.4)在反汇编栏下右键选择中文搜索引擎->智 ...

  7. html中的列表

    无序列表(什么前面默认一个实心的黑原点) <ul> <li>什么</li> <li>什么</li> <li>什么</li& ...

  8. apache tomcat的安装

    第一步:下载及安装. 1.首先进入apache的官网网址:www.apache.org 2.点击 projects 3.进入tomcat下载页面. 4.点击tomcat 9 5.认准是Binary D ...

  9. Docker入门级简单的操作命令

    在理解 Docker 之前,首先得先区分清楚两个概念,容器和虚拟机. 虚拟机都需要有自己的操作系统,虚拟机一旦被开启,预分配给它的资源将全部被占用. 容器技术是和我们的宿主机共享硬件资源及操作系统,可 ...

  10. layui 将后台传过来的值等价替换

    <th lay-data="{field:'opentime',width:'12%' , sort: true, align:'center',templet:'#roleTpl'} ...