簡單記錄一下Squid透明代理服務器的配置
環境:VirtualBox + CentOS 6.0 + squid-3.1.4-1.el6.i686
0、檢查squid是否默認安裝,沒有安裝的先安裝
代碼如下:
[root@Slyar ~]# rpm -qa squid
squid-3.1.4-1.el6.i686
1、虛擬機添加雙網卡,全部設置橋接,配置IP,eth0作為外網,eth1作為內網,注意配置文件裡的網卡MAC地址要和設備匹配!
代碼如下:
[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"
< p>[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"
< p>[root@Slyar ~]# /etc/init.d/network restart #重新啟動網卡
配置之後無法上網的,注意用route命令看一下默認路由。建議eth1就不要設置網關了,省的麻煩,當然如果你願意配置默認路由也沒所謂。
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
如果你要使用透明模式,在端口後面增加關鍵字"transparent"。
不使用透明模式的話,這行不用改,進行第3步之後可以直接跳到第7步測試了。
代碼如下:
# Squid normally listens to port 3128
http_port 3128 transparent
3、啟動squid
代碼如下:
[root@Slyar ~]# service squid restart
4、為透明代理配置iptables,設置轉發
為了省事,直接創建一個shell腳本,開啟網卡間流量交換,開啟NAT,設置DNS轉發,設置80端口流量全部轉發到3128端口交給squid處理。
代碼如下:
[root@Slyar ~]# vim squid.sh #創建腳本文件
代碼如下:
#!/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>[root@Slyar ~]# chmod o+x squid.sh #給腳本執行權限
[root@Slyar ~]# ./squid.sh #啟動腳本
5、將iptables指定保存到配置文件
代碼如下:
[root@Slyar ~]# service iptables save
6、重新啟動iptables
代碼如下:
[root@Slyar ~]# service iptables restart
7、測試squid透明代理
客戶端設置IP地址:192.168.1.x/24
網關:192.168.1.254
DNS服務器:192.168.1.254
8、打開IE,不用設置代理(因為是透明代理),輸入www.jb51.net如果能打開就成功。
9、補充非透明代理測試方法:打開IE - 工具 - Internet選項 - 連接 - 局域網設置 - 代理服務器,設置服務器IP為192.168.1.254,端口3128,確定。