歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

Linux系統下配置squid代理服務器的過程詳解

簡單記錄一下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地址要和設備匹配!
2015123112804623.png (500×238)

2015123113146760.png (498×237)


復制代碼代碼如下:
[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 #重新啟動網卡

配置之後無法上網的,注意用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> <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,確定。

Copyright © Linux教程網 All Rights Reserved