[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 應用技術 > 其它 > 正文
如何在Linux中設置透明代理
http://www.linuxforum.net 作者:吳阿亭 (2001-04-21 18:31:22)
1.什是透明代理?
如果你問:我如何才能使得用戶的瀏覽器不需要任何代理設置就能使用我的
Squid cache代理服務器上網?,此時你就需要使用透明代理。透明代理讓你
的客戶端不需設置任何代理,當包經過透時代理服務器時實際上被重定向到
squid代理服務器的代理端口(如8080),即由本地代理服務器向外請求所需
數據然拷貝給客戶端。

2.我需要什樣的環境才能實現透明代理?
a.客戶端的windows PC的網關必須設成Squid代理服務器,因為既然你的
browser中沒有任何代理設置,你要訪問某個站點時,包必須經經過squid
代理服務器才能被重定向,故這是最基本的條件。
b.客戶端必須正確設置DNS服務器。因為既然現在不用設置任何代理。則
DNS必須由browser來解析,也就是要由客戶端的PC中TCP/IP中設置的DNS
服務器來正確解析出某個站點的IP地址來
c.服務器端可以安裝squid代理服務器,1.x or 2.x版本均可。

3.配置Squid代理,啟動透明代理功能
Squid-2
  加下面的行到你的/etc/squid/squid.conf中
http_port 8080
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

Squid-1.1
 加下面的行到/etc/squid.conf

http_port 8080
httpd_accel virtual 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on

4. 重啟動squid. 用下面的命令:
#/usr/sbin/squid -k reconfigure
如提示內核不支持透明代理。則你需要重新編譯內核,enable 透明代理的支持。

下面是你需要啟動的內核項目:
        [*] Network firewalls
        [ ] Socket Filtering
        [*] Unix domain sockets
        [*] TCP/IP networking
        [ ] IP: multicasting
        [ ] IP: advanced router
        [ ] IP: kernel level autoconfiguration
        [*] IP: firewalling
        [ ] IP: firewall packet netlink device
        [*] IP: always defragment (required for masquerading)

        [*] IP: transparent proxy support


5. 下面的命令針對Linux 2.2.x內核:
  # Accept all on lookback
    /sbin/ipchains -A input -j ACCEPT -i lo
   #Accept my own IP, to prevent loops (repeat for each interface/alias)
    /sbin/ipchains -A input -j ACCEPT -p tcp -d 192.168.11.1/32 80
   #Send all traffic destined to port 80 to Squid on port 80
    /sbin/ipchains -A input -j REDIRECT 8080  -p tcp -s 192.168.11.0/24 -d 0/0 80
 
 下面的命令針對Linux 2.0.x內核:

        # Accept all on loopback
        ipfwadm -I -a accept -W lo
        # Accept my own IP, to prevent loops (repeat for each interface/alias)
        ipfwadm -I -a accept -P tcp -D 192.168.11.1/32 80
        # Send all traffic destined to port 80 to Squid on port 3128
        ipfwadm -I -a accept -P tcp -S 192.168.11.0/24 -D 0/0 80 -r 8080

6.應注意的問題:

a. 這種透明代理只能針對http協議,不能針對FTP協議
b. PC的默認網關應設成squid 代理服務器
c. 防火牆重定向規則在其它的input規則的前面,注意順序。
如:
/etc/rc.d/rc.firewall:


        #!/bin/sh
        # rc.firewall   Linux kernel firewalling rules
        FW=/sbin/ipfwadm

        # Flush rules, for testing purposes
        for i in I O F # A      # If we enabled accounting too
        do
                ${FW} -$i -f
        done

        # Default policies:
        ${FW} -I -p rej         # Incoming policy: reject (quick error)
        ${FW} -O -p acc         # Output policy: accept
        ${FW} -F -p den         # Forwarding policy: deny

        # Input Rules:

        # Loopback-interface (local access, eg, to local nameserver):
        ${FW} -I -a acc -S localhost/32 -D localhost/32

        # Local Ethernet-interface:
    
        # Redirect to Squid proxy server:
        ${FW} -I -a acc -P tcp -D default/0 80 -r 8080


        # Accept packets from local network:
        ${FW} -I -a acc -P all -S localnet/8 -D default/0 -W eth0

        # Only required for other types of traffic (FTP, Telnet):

        # Forward localnet with masquerading (udp and tcp, no icmp!):
        ${FW} -F -a m -P tcp -S localnet/8 -D default/0
        ${FW} -F -a m -P udp -S localnet/8 -D default/0

Here all traffic from the local LAN with any destination gets redirected to the
 local port 8080. Rules can be viewed like this: 

        IP firewall input rules, default policy: reject
        type  prot source               destination          ports
        acc   all  127.0.0.1            127.0.0.1            n/a
        acc/r tcp  10.0.0.0/8           0.0.0.0/0            * -> 80 => 8080
        acc   all  10.0.0.0/8           0.0.0.0/0            n/a
        acc   tcp  0.0.0.0/0            0.0.0.0/0            * -> *



Jephe Wu

(http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
代理接入服務器(七)ISDN撥號 (2002-02-17 07:20:00)
代理接入服務器(六)Modem撥號 (2002-02-16 07:20:00)
代理接入服務器(五)Squid代理服務器 (2002-02-15 07:15:00)
代理接入服務器(四)IP偽裝 (2002-02-15 06:15:00)
代理接入服務器(三)DHCP服務器 (2002-02-14 07:15:01)
代理接入服務器(二)雙網卡 (2002-02-14 06:15:00)
代理接入服務器(一)單網卡 (2002-02-13 07:15:01)
用Squid實現代理上網及計費 (2002-01-31 09:17:57)
IMP 與 Proxy Server 代理伺服主機 (2001-06-07 10:08:00)
使用反向代理技術保護Web服務器 (2001-05-10 11:06:43)

===更多相關===
 

★  樊強制作 歡迎分享  ★