欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何在Linux中設(shè)置透明代理

 更新時(shí)間:2006年10月24日 00:00:00   作者:  

  1.什么是透明代理?

  如果你問:我如何才能使得用戶的瀏覽器不需要任何代理設(shè)置就能使用我的Squid cache代理服務(wù)器上網(wǎng)?此時(shí)你就需要使用透明代理。透明代理讓你的客戶端不需設(shè)置任何代理,當(dāng)包經(jīng)過透時(shí)代理服務(wù)器時(shí)實(shí)際上被重定向到squid代理服務(wù)器的代理端口(如8080),即由本地代理服務(wù)器向外請求所需數(shù)據(jù)然后拷貝給客戶端。
  2.我需要什么樣的環(huán)境才能實(shí)現(xiàn)透明代理?

  a.客戶端的windows PC的網(wǎng)關(guān)必須設(shè)成Squid代理服務(wù)器,因?yàn)榧热荒愕腷rowser中沒有任何代理設(shè)置,你要訪問某個(gè)站點(diǎn)時(shí),包必須經(jīng)經(jīng)過squid代理服務(wù)器才能被重定向,故這是最基本的條件。

  b.客戶端必須正確設(shè)置DNS服務(wù)器。因?yàn)榧热滑F(xiàn)在不用設(shè)置任何代理。則DNS必須由browser來解析,也就是要由客戶端的PC中TCP/IP中設(shè)置的DNS服務(wù)器來正確解析出某個(gè)站點(diǎn)的IP地址來。

  c.服務(wù)器端可以安裝squid代理服務(wù)器,1.x or 2.x版本均可。

  3.配置Squid代理,啟動(dòng)透明代理功能

  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. 重啟動(dòng)squid. 用下面的命令:

    #/usr/sbin/squid -k reconfigure

  如提示內(nèi)核不支持透明代理。則你需要重新編譯內(nèi)核,enable 透明代理的支持。

  下面是你需要啟動(dòng)的內(nèi)核項(xiàng)目:

  [*] 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內(nèi)核:

  # 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內(nèi)核:

  # 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.應(yīng)注意的問題:

  a. 這種透明代理只能針對http協(xié)議,不能針對FTP協(xié)議
  b. PC的默認(rèn)網(wǎng)關(guān)應(yīng)設(shè)成squid 代理服務(wù)器
  c. 防火墻重定向規(guī)則在其它的input規(guī)則的前面,注意順序。

  如:

    /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 * -> *

相關(guān)文章

最新評論