萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> Linux系統下配置squid代理服務器的過程詳解

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"

< 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,確定。

copyright © 萬盛學電腦網 all rights reserved