一、squid介绍
略过
二、安装
配置squid
./configure --prefix=/usr/local/squid \
--sysconfdir=/etc \
--enable-arp-acl \
--enable-linux-netfilter \ #打开透明代理功能
--enable-linux-tproxy \ #打开透明代理功能
--enable-async-io=100 \
--enable-err-language="Simplify_Chinese" \
--enable-underscore \ #允许下划线
--enable-poll \ #字符设备驱动中的一个函数
--enable-gnuregex #GNU正则表达式库
运行控制
1、安装后环境:
squid服务默认端口是:TCP 3128端口
启动squid使用/usr/local/squid/sbin/squid
配置文件:/etc/squid.conf
默认用nobody运行。
2、创建软件链接:
安装完成后,which squid 查找不到,需要建立链接:
ln -s /usr/local/squid/sbin/* /usr/local/sbin/
再次which squid。
3、编辑配置文件,以squid账户来运行服务):
vim /etc/squid.conf
/3128(搜索),找到后在其下面添加:
reply_body_max_size 10 MB(可选项,限制用户下载的文件大小)
cache_effective_user squid #设置运行squid服务的用户及用户组账号
cache_effective_group squid
4、创建账户:
useradd -M -s /sbin/nologin squid #-M不创建宿主目录,-s指定登录SHEll。
chown -R squid:squid /usr/local/squid/var/ #授于squid账户对var文件夹具有写权限。
5、squid命令:
squid --help #查看帮助
squid #启动squid代理服务
squid -k reconfigure #修改配置文件后,配置立即生效执行的命令。
squid -k shutdown #关闭服务
squid -k parse #检查语法错误(可以先检查语法错误)
6、启动服务及验证:squid
开启服务:squid
验证服务是否开启:netstat -anpt |grep 3128
透明代理实现过程:
1、配置Squid支持透明代理
vim /etc/squid.conf
http_port 3128 transparent #透明代理,编译时必须打开此功能。
squid -k reconfigure
2、设置iptables 重定向策略
清除原有规则:
iptables -t nat -I PREROUTING -i eth0 -s 192.168.0.0/24 -p tcp --dport 80 -j REDIRECT --to 3128
注意事项
squid代理服务器与SNAT对比
1、都可以实现内网访问互联网,但是使用的技术各自不一样。
2、SNAT只起到地址转换的作用,无法开启网页的缓存,无法对网页的URL进行过滤。
3、squid是通过代理的方式让客户端间接访问互联网,可以对客户端访问的网页进行缓存,还可以对客户端的连接进行控制,包括源IP、目的URL、文件类型等等。
4、SNAT需要系统开启数据包转发功能(ip_forward = 1),而squid代理不需要开启。
Leave a Reply