简单配置squid+iptables的透明代理

发布时间:2020-08-06编辑:脚本学堂
简单配置squid+iptable的透明代理
squid透明代理配置,供初学者学习参考。
1、配置网卡
网卡:
配置对外网卡eth0
复制代码 代码如下:
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
BROADCAST=192.168.1.255
IPADDR=192.168.1.12
NETMASK=255.255.255.0
NETWORK=192.168.1.0
ONBOOT=yes
USERCTL=no
PEERDNS=no
TYPE=Ethernet
配置对内网卡eth1
复制代码 代码如下:
/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
BROADCAST=192.168.11.255
IPADDR=192.168.11.254
NETMASK=255.255.255.0
NETWORK=192.168.11.0
ONBOOT=yes
USERCTL=no
PEERDNS=no
2、安装配置squid
复制代码 代码如下:
/etc/squid/squid.conf
#打开3128端口
http_port 3128
#cache的内存容量
cache_mem 64 MB
#cache的目录及容量,我是设定为12G
cache_dir ufs /var/squid/cache 12000 16 256
#允许网吧内所有机器访问
http_access allow all
#squid的运行用户及组
cache_effective_user squid
cache_effective_group squid
#http加速端口设置,透明代理能用上
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
保存,然后用squid -Z来定位缓存目录,如果出现失败,就chmod 777 /var/cache

测试squid是否能用,运行squid:
squid
测试一下是否有进程
ps -aux | grep squid
如果有,我们随便找一台网吧上的机器试试,在IE的连接处设置代理: 地址:192.168.1.12,端口:3128

3.配置iptables
我们不能要求都设置IE或QQ的代理,这就是透明代理的好处,因为bu仅仅是用来浏览网页或者聊Q,
网络游戏连接需要各种端口,所以不能用iptables -F去丢包了.
在/etc/rc.local下加入如下几行:  

复制代码 代码如下:
#加载iptables的相关模块:
modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_conntrack
modprobe ip_conntrack_ftp
#把80端口的包全部转向3128端口
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
#ip转向,192.168.11.0/24为内网网段
iptables -t nat -A POSTROUTING -s 192.168.11.0/24 -o eth0 -j SNAT --to 192.168.1.12

4.测试 用命令 service iptables save 将自动生成文件 /etc/sysconfig/iptables,前面设定的访问策略就被保存到硬盘,系统重启时,系统将自动地从文件 /etc/sysconfig/iptables 获得定制的访问策略。

运行/etc/rc.d/rc.local,到此设置全部完毕,看看能不能上网,找一台内网的机器,设定IP地址为192.168.11.2,网关为192.168.11.254。
现在试试不用代理能否直接上网,用IE或者QQ试试。