`
paulfzm
  • 浏览: 888131 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

squid + iptables 做反向代理和透明代理

 
阅读更多

squid + iptables 做反向代理和透明代理

操作系统

CENTOS 6.0 x86_64

squid 3.1.4  

 

# yum install squid

 

# rpm -qa|grep squid
squid-3.1.4-1.el6.x86_64

 

1.开启网卡数据包转发

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1   //将 0 改成 1

保存退出

# sysctl -p

 

2.配置 squid

 

vim /etc/squid/squid.conf

 

查找

http_port 3128

改成

http_port 3128 transparent  //使用 3128 端口做透明代理

添加一行

http_prot 80 accel vhost vport   //使用 80 端口做反向代理 

注: 如果web服务器和squid同台机器则要把web服务器80端口改成其他端口,如 81

 

添加

visible_hostname squid.localhost //这行不加启动报错

WARNING: failed to resolve 0.0.0.0:3128 to a fully qualified hostname
FATAL: Could not determine fully qualified hostname.  Please set 'visible_hostname'

 

配置 squid 缓存目录 

cache_dir ufs /var/spool/squid 10000 32 512  // 默认被注释,必须去掉注释,不然无法初始化

这里的 /var/spool/squid 为缓存存放目录

10000 是指缓存目录的总容量大小 10000MB 即 10 GB

32 是指 缓存目录的一级目录数 即 /var/spool/squid 下有 32 个子目录,以下类同

512 是指 缓存目录的二即目录数

 

配置 access 权限

找到

http_access deny all

改成

http_access allow all

 

保存退出

启动 squid

# service squid start    //第一次运行会初始化缓存目录

 

# netstat -tnl

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:43063               0.0.0.0:*                   LISTEN
tcp        0      0 0.0.0.0:3128                0.0.0.0:*                   LISTEN
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN
tcp        0      0 :::111                      :::*                        LISTEN
tcp        0      0 :::80                       :::*                        LISTEN
tcp        0      0 :::22                       :::*                        LISTEN
tcp        0      0 ::1:25                      :::*                        LISTEN
tcp        0      0 :::48543                    :::*                        LISTEN

 

2. 配置 iptables

将内网网卡路由之后进行ip地址伪装

# iptables -t nat -A POSTROUTING -i eth0 -j MASQUERADE

# iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to 115.239.233.106


开启允许内网网卡进行数据包转发,即上网功能

# iptables -A FORWARD -i eth0 -j ACCEPT    //输入,下载

# iptables -A FORWARD -o eth0 -j ACCEPT    //输出,上传

 

顺序必须加在

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

之前,不然会被拒绝掉

vim /etc/sysconfig/iptables 查看,修改

-A FORWARD -i eth0 -j ACCEPT
-A FORWARD -o eth0 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

 

如果怕麻烦,直接可以使用

iptables -F

iptables -t nat -A POSTROUTING -i eth0 -j MASQUERADE

 

保存设置

# service iptables save

重启 iptables

# service iptables restart

 

完成透明代理,客户端即可上网

 

3.设置 squid 反向代理

vim /etc/squid/squid.conf

 

# cache_peer  //配置指向web服务ip、端口和服务器名

cache_peer 192.168.0.10 parent 80 0 no-query no-digest originserver name=web01 

cache_peer 192.168.0.20 parent 80 0 no-query no-digest originserver name=web02 

# cache_peer_domain  //配置域名所指向服务器 

cache_peer_domain web01 !test.domain1.com  

cache_peer_domain web01 .domain1.com 

cache_peer_domain web02 www.domain2.com

# cache_peer_access   //访问权限,允许访问 web01  ,web02
cache_peer_access web01 allow all  

cache_peer_access web02 allow all 

 

这样,访问

domain1.com 除 test.domain1.com 都指向访问 web01 的服务器

www.domain2.com 即指向访问 web02 的服务器

 

squid 重新载入配置即可生效

# service squid reload

 

完成反向代理配置

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    squid+iptables透明代理配置詳解

    ### squid+iptables透明代理配置详解 #### 一、概述 本文档旨在详细介绍如何配置一个结合squid和iptables的透明代理服务器。此配置适用于Linux环境下的内部网络管理需求,特别是对于那些希望实现不同用户级别的...

    RHEL5下Squid+IPtables经典案例

    RHEL5下Squid+IPtables经典案例

    Linux搭建Squid透明代理及squid+icap环境

    二、Squid+ICAP环境搭建 1. 安装ICAP服务器 例如,你可以使用mod_security作为ICAP服务器,它提供内容过滤功能。首先,安装mod_security: ```bash sudo apt-get install libapache2-mod-security2 # Ubuntu/...

    在RedHat linux 9.0下用squid iptables实现透明代理.pdf

    基于 RedHat Linux 9.0 的 Squid 和 iptables 透明代理服务器搭建 本文档详细介绍了在 RedHat Linux 9.0 环境下使用 Squid 和 iptables 搭建透明代理服务器的过程。透明代理服务器可以提供高速、支持多协议的代理...

    BSD+Squid+DansGuardian

    标题 "BSD+Squid+DansGuardian" 涉及的是一个基于BSD操作系统,结合Squid代理服务器和DansGuardian内容过滤系统的网络管理解决方案。这个项目可能旨在为公司的网络环境提供安全、高效的互联网访问控制。 BSD...

    详细解析用Squid实现反向代理的方法

    2. 透明代理缓冲服务器:具有和标准代理服务器相同的功能,但代理操作对客户端的浏览器是透明的,客户端不需要指明代理服务器的IP地址和端口号。 3. 反向代理缓冲服务器:位于本地WEB服务器和Internet之间,处理...

    LVS+squid构建HA反向代理方案

    【LVS + Squid 构建HA反向代理方案】是一种高效的高可用性集群解决方案,旨在提高Web服务的性能和稳定性。LVS(Linux Virtual Server)由章文嵩博士领导开发,是一个开源项目,旨在创建高并发、高性能、高可用的网络...

    RH Linux下Iptables+Squid2.6透明代理+防火墙配置

    在Redhat Linux中,Iptalbes和Squid透明代理加防火墙的搭配配置是最常见的组合,也是非常实用的,下面就是详细的配置信息。

    squid+mysql用户认证配置安装详细版

    希望可以帮助到需要进行配置代理服务器的朋友!这是我根据配置的时候一步一步做的文档,包括每一步遇到的错误及如何解决的方法都一一列出

    Squid缓存代理服务器的安装与配置(普通代理 透明代理 反向代理)

    Squid缓存代理服务器的安装与配置(普通代理 透明代理 反向代理) Squid缓存代理服务器是一种流行的代理服务器和Web缓存服务器软件,广泛应用于提高Web服务器速度、缓存万维网、域名系统和其他网络搜索、帮助网络...

    squid反向代理配置例子

    本文将详细讲解如何使用Squid进行反向代理配置,通过提供的文件名,我们可以看到有四种不同的配置场景:单站点代理、多站点代理、以及两种实现Web站点负载均衡的方法(sibling形式和常规方式)。 1. **单站点代理**...

    Squid 反向代理配置

    本文档详细介绍了如何在RHEL5.5和Windows Server 2003环境下配置Squid作为反向代理服务器,并通过实例演示了如何针对不同域名配置不同的代理策略。这对于希望利用Squid提高网络性能或实现负载均衡的应用场景非常有用...

    透明代理负载均衡反向代理

    自己写的课程设计,用iptables和squid透明代理负载均衡和反向代理

    透明防火墙架设的完全攻略(bridge+iptables+squid)

    绍透明防火墙架设的完全攻略(bridge+iptables+squid)

    LVS+Keepalived+Squid+Nginx

    在构建高性能、高可用性的Web服务架构中,`LVS(负载均衡服务器)`、`Keepalived`、`Squid`(代理缓存服务器)和`Nginx`(反向代理服务器)是四个非常关键的组件。下面将详细介绍这四个技术及其相互配合的工作原理。 1. *...

    squid反向代理的学习资料

    有需要的可以学习,可以给您的网站做反向代理加速。

    Linux CentOS下搭建DNS+squid+nginx+mysql高可用web服务器.zip_nginx转发mysql

    Linux CentOS下搭建DNS+squid+nginx+mysql高可用web服务器.zip

    squid 透明代理的实现与配置

    在 Linux 系统中,我们可以通过 iptables 规则来实现流量重定向至 Squid 透明代理。以下是一些基本的 iptables 规则示例: 1. **将来自特定子网的 HTTP 请求重定向到 Squid**: ```bash iptables -t nat -A ...

    Squid代理项目-正向和反向详细笔记文档实战案例

    【Squid 代理项目-正向和反向详细笔记文档实战案例】 Squid 是一个广泛使用的开源 HTTP 代理服务器,它支持多种代理模式,包括正向代理、透明代理和反向代理。理解这些代理类型是管理和优化网络流量的关键。 1. **...

    Centos中Squid代理服务器安装和基本设置(含反向代理)

    Squid是一个广泛使用的代理缓存服务器,它能够为用户提供透明或非透明的代理服务,同时也支持反向代理功能。在教育环境中,Squid可以有效地提高网络访问速度,降低对外部网络的依赖,并增强内部网络的安全性。 ####...

Global site tag (gtag.js) - Google Analytics