Squid透明代理内网用户上网

简介:

Squid透明代理内网用户上网

2015-04-19 20:48:38

标签:squid 路由器 代理服务 ip地址

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lu2yu.blog.51cto.com/10009517/1635836

一、简介

    squid实现代理上网是7层代理,传统的路由器实现snat一般是4层,基于ip地址和端口转换实现的,7层和4层的区别如下:

        1.nat需要开启路由转发功能,7层代理squid不需要开启路由转发

        2.7层能够实现应用层面的控制,可以基于url的控制过滤,4层无法做到。


 Squid基本功能:

        1.提供HTTP和FTP协议的代理服务

        2.缓存代理数据,提高访问速度

        3.ACL限制内网访问外网资源(时间,ip)



二、Squid实现内网上网

   拓扑:

       wKioL1UzmrqCxVXUAAGjVVTU3Yo755.jpg

(不追求美观,但讲究精确)


 ①安装squid软件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@node1 ~] #  yum  install  -y  squid
 
[root@node1 ~] #  rpm  -ql  squid
/etc/logrotate .d /squid      ##日志轮转
/etc/pam .d /squid             ##squid支持的认证模块
/etc/rc .d /init .d /squid          ##服务脚本
/etc/squid                      ##配置文件位置
/etc/squid/cachemgr .conf
/etc/squid/cachemgr .conf.default
/etc/squid/errorpage .css
/etc/squid/errorpage .css.default
/etc/squid/mime .conf             ##支持的媒体文件类型
/etc/squid/mime .conf.default
/etc/squid/msntauth .conf
/etc/squid/msntauth .conf.default
/etc/squid/squid .conf             ##当前生效的配置文件
/etc/squid/squid .conf.default     ##初始化配置文件的备份
/var/log/squid                     ##日志文件
/var/spool/squid


②配置squid节点

  前提: 保证squid自身能上网

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
######/etc/squid/squid.conf#####主要配置内容
 
http_port 192.168.112.135:3128 transparent
 
acl  innet src 192.168.112.0 /24
http_access allow  innet
 
cache_access_log   /var/log/squid/access .log  ##设置高速缓存存取记录文件的名称和所在目录,它记录了所有高速缓存的行为,如果不需要,可以设为"cache_access_log /dev/null"
 
visible_hostname  192.168.112.135     ##用于提示客户端
 
cache_mem   60M                     ##设置PROXY SERVER可使用多少内存作为高速缓存,一般要设置为物理内存的1/3
 
cache_log  /var/log/squid/cache .log   ##设置缓存存储记录文件的名称和所在目录,它记录了哪些数据从高速缓存移出,哪些数据被放入高速缓存
 
cache_swap_low 80
cache_swap_high 97   ##这两行设置CACHE进行替换的闸值,当占用到97%的CACHE后,CACHE中的内容将被清空20%
 
cache_dir ufs  /var/spool/squid   100  16 256  ##设置高速缓存目录和高速缓存可以使用的硬盘空间,100表示最大可使用100MB,16表示第一层子目录最多可以有16个,256表示每个第一层子目录下最多可以有256子目录
 
dns_nameservers 192.168.31.1     ##内部指定dns,没有则以/etc/resolv.conf为准


③配置iptables规则,实现客户端的80,443请求定向到squid的3128端口,并且将pc的53dns请求snat出去(udp 的53dns无法代理,所以只能通过snat方式出去)

1
2
[root@node1 squid] # iptables  -t  nat  -A PREROUTING -s 192.168.112.0/24 -p tcp --dport 80,443  -j  REDIRECT --to 3128
[root@node1 squid] # iptables  -t nat -A POSTROUTING -s 192.168.112.0/24 -p udp --dport 53 -j SNAT --to-source 192.168.31.241


   由于需要snat,因此还需要打开路由转发功能

1
[root@node1 squid] #  echo 1 > /proc/sys/net/ipv4/ip_forward


④配置内网PC

  前提:内网PC的流量必须经过squid,dns的解析可以不经过。



⑤测试

wKioL1Uzo7-xaXW0AAtdU4T8P7k599.jpg



本文出自 “Lu2Yu” 博客,请务必保留此出处http://lu2yu.blog.51cto.com/10009517/1635836




      本文转自rshare 51CTO博客,原文链接:http://blog.51cto.com/1364952/1955901,如需转载请自行联系原作者



相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
监控 应用服务中间件 BI
nginx日志统计分析自动报表工具goaccess(推荐)
## 功能描述 - nginx日志统计分析自动报表工具goaccess(推荐) - 网站总访问量统计,按天统计访问量,按页面(不同URL)统计访问量(不包括JS、css),按静态页面统计访问量(包括JS、css),不存在的页面统计访问量 - 按不同的IP统计访问量,按不同的操作系统统计访问量,...
8350 0
|
7月前
|
存储 安全 网络协议
阿里云服务器通用型实例怎么选?g7/g8y/g8i适用场景、性能对比与选择参考
在选择云服务器实例规格时,对于需要平衡计算、存储和网络性能的应用场景来说,一般会选择通用型实例规格,在阿里云目前的活动中,属于通用型实例的主要有通用型g7、通用型g8y和通用型g8i实例。为了帮助大家更好地了解这三款实例的区别,并为选择提供参考,本文将详细对比它们的实例规格、CPU、内存、计算、存储、网络等方面的性能,并附上活动价格对比,以便用户能够全面了解它们之间的不同,以作参考选择。
404 14
|
安全 Linux
使用squid在阿里云服务器(centos7)上搭建自己的代理服务器
大部分公司的内网往往有各种网络限制,无法访问部分网站。所以弄个服务器来代理一下,翻个公司的内网还是很舒服的。在此,我记录的是用squid来完成的代理服务器。   安装 检测是否安装: # which squid /usr/bin/which: no squid in (/usr/local/sbin:/usr/local... 出现以上提示说明没有安装。
8962 0
|
算法 调度
迪杰斯特拉算法(Dijkstra's algorithm)以及示例
迪杰斯特拉算法(Dijkstra's algorithm)是一种非常重要且有价值的算法。它被广泛应用于计算图中单源最短路径问题,在交通路线规划、网络路由、作业调度等领域有着广泛的应用。迪杰斯特拉算法的最大优点是其简单易懂和时间复杂度较低,因此在实际应用中非常实用。它可以在稠密图和稀疏图中使用,对于边权均为非负数的图都可以使用。
迪杰斯特拉算法(Dijkstra's algorithm)以及示例
|
Java 大数据 Scala
Scala快速入门--Scala环境搭建【Windows10】图解
Scala快速入门--Scala环境搭建【Windows10】图解
326 0
|
Java Apache Maven
将word文档转换成pdf文件方法
在Java中,将Word文档转换为PDF文件可采用多种方法:1) 使用Apache POI和iText库,适合处理基本转换需求;2) Aspose.Words for Java,提供更高级的功能和性能;3) 利用LibreOffice命令行工具,适用于需要开源解决方案的场景。每种方法都有其适用范围,可根据具体需求选择。
1626 2
|
SQL 关系型数据库 MySQL
MySQL误删怎么办?
本文详细介绍了如何通过MySQL的binlog日志恢复被误删除的数据。首先,确保binlog功能已开启并确认其模式(row模式更佳)。然后,通过查询binlog文件找到删除操作的具体位置。提供了两种恢复方案:一是直接找到并重放insert语句;二是通过逆向操作重新插入数据。文章还推荐了binlog2mysql等工具简化这一过程,帮助自动生成所需SQL语句。适合数据库管理员和开发者参考。
238 3
|
应用服务中间件 数据库连接 数据安全/隐私保护
MSSQL绕过360提权实战案例
MSSQL绕过360提权实战案例
536 2
|
运维 关系型数据库 MySQL
绕过360安全卫士提权实战案例
绕过360安全卫士提权实战案例
923 1
|
存储 监控 并行计算
X86 vs ARM 架构同台竞技: 生物大数据大规模并行计算(如何将WGS全基因组计算成本降到1美元)
Sentieon DNAseq 实施的全基因组测序 (WGS) 二级分析流程与行业标准的 BWA-GATK 最佳实践流程结果相匹配,且运行速度提高了 5-20 倍。 Sentieon软件安装简单,开箱即用,并且提供了与ARM和x86指令集适配的版本。使30X WGS 数据样本在OCI 实例上的计算成本压缩到每个样本 1 美元以下,处理时间缩短到近一小时。
478 0
X86 vs ARM 架构同台竞技: 生物大数据大规模并行计算(如何将WGS全基因组计算成本降到1美元)