`
paulfzm
  • 浏览: 891903 次
  • 性别: 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

 

完成反向代理配置

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

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

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

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

    Squid 是一个广泛使用的开源 HTTP 代理服务器,它支持多种代理模式,包括正向代理、透明代理和反向代理。理解这些代理类型是管理和优化网络流量的关键。 1. **正向代理**: 正向代理用于代表内部网络中的客户端...

    基于Linux网络系统的Squid代理服务器的构建.pdf

    本文主要介绍了三种类型的Squid代理服务器:传统代理、透明代理和反向代理。传统代理需要客户端在浏览器中指定代理服务器的地址和端口号,对于局域网来说,通过代理服务器可以接入Internet,但一般只能访问Web网站和...

    NAT+Squid配置

    Squid可以作为透明代理、反向代理或标准代理来使用,支持HTTP、HTTPS、FTP等协议。 ### NAT与Squid在Linux下的配置 #### 配置步骤概览 1. **启用NAT**:通过iptables命令在Linux系统上设置NAT规则,包括SNAT和...

    squid中文权威指南

    透明代理允许 Squid 在不修改客户端配置的情况下工作,通常通过 IP 路由或者 iptables 规则实现。例如,以下 iptables 命令将所有外出 HTTP 流量重定向到 Squid 代理: ```bash iptables -t nat -A PREROUTING -p ...

    squid缓存服务器的研究

    - **透明代理**:无需客户端进行任何配置,通过网络层(如 Linux 下的 Iptables 或 Ipchains)实现自动重定向。这种方式对最终用户透明,特别适用于 ISP 场景。 ##### 2. 反向代理 - **反向代理缓冲服务器**:位于...

    linux下squid服务器的配置与管理收集.pdf

    本实验报告详细介绍了如何配置和管理Squid服务器,包括正向代理、透明代理和反向代理的设置。 一、代理服务器原理 代理服务器作为客户端与互联网之间的中介,可以缓存频繁访问的网页,减少对原始服务器的压力,同时...

    linux下squid服务器的配置与管理.pdf

    2. 透明代理配置:透明代理需要修改网络设备的设置,通常是iptables规则,以便所有出站流量都通过Squid。同样在配置文件中设置监听接口和端口,并启用透明代理选项。重启Squid服务后,网络流量会自动通过代理。 3. ...

    Linux在建设校园网中的应用.pdf

    我校利用Squid+Iptables实现了透明代理,使得用户无需手动设置浏览器代理就能安全地上网。 4. 利用Mysql创建数据库服务器 Mysql是一种小巧、多用户、多线程的SQL数据库系统,因其简单、高效和高稳定性而广受欢迎。...

Global site tag (gtag.js) - Google Analytics