簡單記錄一下Squid透明代理服務(wù)器的配置
環(huán)境:VirtualBox + CentOS 6.0 + squid-3.1.4-1.el6.i686
0、檢查squid是否默認(rèn)安裝,沒有安裝的先安裝
[root@Slyar ~]# rpm -qa squid
squid-3.1.4-1.el6.i686
1、虛擬機添加雙網(wǎng)卡,全部設(shè)置橋接,配置IP,eth0作為外網(wǎng),eth1作為內(nèi)網(wǎng),注意配置文件里的網(wǎng)卡MAC地址要和設(shè)備匹配!
[root@Slyar ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
ONBOOT=yes
TYPE=Ethernet
HWADDR=08:00:27:BC:6A:0D
IPADDR=172.17.1.221
PREFIX=24
GATEWAY=172.17.1.254
DNS1=172.16.5.133
NAME="System eth0"
[root@Slyar ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
ONBOOT=yes
TYPE=Ethernet
HWADDR=08:00:27:20:52:B2
IPADDR=192.168.1.254
PREFIX=24
NAME="System eth1"
[root@Slyar ~]# /etc/init.d/network restart #重新啟動網(wǎng)卡
配置之后無法上網(wǎng)的,注意用route命令看一下默認(rèn)路由。建議eth1就不要設(shè)置網(wǎng)關(guān)了,省的麻煩,當(dāng)然如果你愿意配置默認(rèn)路由也沒所謂。
2、配置squid及透明模式
[root@Slyar ~]# cp /etc/squid/squid.conf /etc/squid/squid.conf.bak
[root@Slyar ~]# vim /etc/squid/squid.conf
為了省事,我直接把下面這行改成 http_access allow all,讀者可以自行修改允許范圍。
# And finally deny all other access to this proxy
http_access deny all
切記一定要在配置文件最下方增加下面這條語句,否則squid無法啟動!
visible_hostname localhost
如果你要使用透明模式,在端口后面增加關(guān)鍵字"transparent"。
不使用透明模式的話,這行不用改,進行第3步之后可以直接跳到第7步測試了。
# Squid normally listens to port 3128
http_port 3128 transparent
3、啟動squid
[root@Slyar ~]# service squid restart
4、為透明代理配置iptables,設(shè)置轉(zhuǎn)發(fā)
為了省事,直接創(chuàng)建一個shell腳本,開啟網(wǎng)卡間流量交換,開啟NAT,設(shè)置DNS轉(zhuǎn)發(fā),設(shè)置80端口流量全部轉(zhuǎn)發(fā)到3128端口交給squid處理。
[root@Slyar ~]# vim squid.sh #創(chuàng)建腳本文件
#!/bin/bash
echo "1" > /proc/sys/net/ipv4/ip_forward
modprobe iptable_nat
/sbin/iptables -t nat -A POSTROUTING -j MASQUERADE
iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to 172.16.5.133
iptables -t nat -A PREROUTING -i eth1 -p tcp -s 192.168.1.0/24 --dport 80 -j REDIRECT --to-ports 3128/p>
p>[root@Slyar ~]# chmod o+x squid.sh #給腳本執(zhí)行權(quán)限
[root@Slyar ~]# ./squid.sh #啟動腳本
5、將iptables指定保存到配置文件
[root@Slyar ~]# service iptables save
6、重新啟動iptables
[root@Slyar ~]# service iptables restart
7、測試squid透明代理
客戶端設(shè)置IP地址:192.168.1.x/24
網(wǎng)關(guān):192.168.1.254
DNS服務(wù)器:192.168.1.254
8、打開IE,不用設(shè)置代理(因為是透明代理),輸入www.jb51.net如果能打開就成功。
9、補充非透明代理測試方法:打開IE - 工具 - Internet選項 - 連接 - 局域網(wǎng)設(shè)置 - 代理服務(wù)器,設(shè)置服務(wù)器IP為192.168.1.254,端口3128,確定。