搜索文章:
 
熱門搜索關鍵詞:
報關 出口 進口 貿易 電子 詞典 NPT 變壓器 深圳 轉廠 到付 KELANG xiao 廣東 惠來縣河林鄉6481280話費

  Proxy 在字面上的意思是代理人, Proxy Srever 可以接受使用者的要求 Internet 上抓取網頁, 將資料存放至硬盤, 再將資料傳送給使用者.當有另一位使用者要求讀取同一份資料時, Proxy Server 即可將存放於硬盤上的資料傳送給使用者.
  Proxy 的運作
  
  (1) 使用者 (Client) 提出要求
  (2) Proxy Server本身是否有所需資料,若有則跳至(6)
  (3) 向真正的 Web Server 提出索取資料需求
  (4) 真正的 Web Server 響應資料
  (5) Proxy Server 儲存 WebServer 響應的資料
  (6) Proxy 響應使用者 (Client) 需求
   
  使用 Proxy Server 的好處
  1.減少不必要的傳輸, 降低網絡的負載
  2.加快擷取網頁的速度, 減少等待的時間
  3.提供使用防火牆的局域網絡連上 Internet 的方法
   
  目前各種常見的 Proxy Server
  1.Squid : 適用於一般安裝 UNIX 系統的服務器, 目前最多人使用.
  2.CERN-HTTPD
  3.Netscape Proxy
  4.Harvest
  5.IBM-Secure-Export-ICS
  6.MSProxy
  7.Apache
  8.Commerce-Builder

  傳統代理,透明代理,plug-gwApache反向代理,IP偽裝,端口轉發六種方式的比較

  

  第一部分各種代理方式的特點和包重寫過程

  

  Squid傳統代理和透明代理:

  

  在Linux上用得最廣泛的傳統代理和透明代理是Squid.默認的Squid配置成傳統代理的方式。在這種方式下,windows客戶端要在瀏覽器中設置代理服務器的地址和端口號,客戶端所要做的工作其實很少。隻需要指定代理服務器的IP地址和端口號即可,其它剩下的一切都交給代理服務器去做。在這種方式下的一個明顯特點是windows客戶機瀏覽網頁,打入一個URL時,DNS也由代理服務器去做。解析DNS的過程是根據Linux服務器中設置的/etc/host.conf文件中的解析順序進行的。

  一般的順序是先查找/etc/hosts,然後找DNS數據庫bind。在這種情況下的有趣例子是如果你設置了某一站點的域名為你內部網中的一台服務器,則先去訪問內部網服務器了。如你設置192.168.11.3 www.yahoo.com 則你的瀏覽器就不可能去訪問互聯網上的yahoo站點了。

  但假若你設置了透明代理的話,則解析的DNS順序便變為windowshosts然後再LinuxDNS數據庫。不再可能檢查Linux服務器上的/etc/hosts文件了。

  關於透明代理的介紹,見文章薈萃中的另一篇文章《如何在Linux中設置透明代理》

  

  傳統代理和透明代理的包重寫過程:  

  [PC] A [Linux squid server] B

  __192.168.11.12_|_____192.168.11.5__|___1.2.3.4_________Internet

  

  在A機用戶的瀏覽器上設置代理為192.168.11.5,端口號為3128,通過B上網。

  假如訪問www.linuxforum.net,實際上隻要你設定了代理的話,用戶端的瀏覽器隻是和Linux Squid服務器進行通信而決不和互聯網上的www.linuxforum.net服務器交談,首先由squid代理服務器對

  www.linuxforum.net進行解析(查找/etc/host.conf中的解析順序,先是/etc/hosts然後是DNS查找)

  進行到IP地址為202.106.124.185,最後由代理服務器代替用戶端對該IP地址進行HTTP訪問,回復回來的信息先緩存到squid cache中,同時拷貝一份到用戶端。下次若該用戶或其它用戶訪問同樣的頁面時則可以從squid cache中調用節省時間。

  透明代理的過程和傳統代理差不多,區別在

  1DNS解析過程不同,前面已經說過

  2。用透明代理網關必須設置為squid代理服務器的IP地址,而傳統代理不需要。

  3。透明代理需要設置防火鏈的input規則,其余的和squid傳統代理方式相同。

  

  plug-gw:

  plug-gwFWTK中所帶的通用代理程序。可用來代理象POP3,HTTP等應用層服務。

  

  [PC] A [Linux POP3] C [Linux plug-gw]B

  __192.168.11.12_|______|192.168.11.1____192.168.11.5__|___1.2.3.4__Internet

  

  假如內部網段上有一台Linux POP3服務器C(192.168.11.1),希望外部用戶能收取郵件可在機器B上設定plug-gwPOP3代理如下:

  

  放下面的行到/etc/rc.d/rc.local

  /usr/local/etc/plug-gw -daemon 1.2.3.4:110 -name plug-gw-pop3 & 文件/usr/local/etc/netperm-table中有下面一行

  plug-gw-pop3: port 110 * -plug-to 192.168.11.1 -port 110

  

  則用戶設定outlook express中的POP3服務器地址為1.2.3.4.當收郵件時對B機的外部接口而言,是在1.2.3.4110端口接受用戶請求,隨後被plug-gw處理,在內部網段上,192.168.11.5192.168.11.1110端口發出請求。把所得的數據由1.2.3.4接口拷貝給外部用戶。

  

  Apache反向代理。

  包重寫過程與plug-gw類似

  

  注意:上面所講的三種情況下,請求過程被分開兩次,中間一般是squid代理服務器或者plug-gw,Apache服務器,數據在服務器的兩塊網卡中間做拷貝的動作,但是兩次請求過程的源地址是隨機分配的高端地址,是不同的。在1024 65535之間。但是一般而言,TCP/IP分配的隨機高端地址大多數是在1024--5000之間分配。例如:對於plug-gw來說:

  如果某外部撥號用戶的IP地址為5.6.7.8。假如地址和端口如下:

  源地址和端口號和目標地址端口與為:

  5.6.7.8 1038 1.2.3.4 110

  被plug-gw改寫請求為:

  192.168.11.5 1045 192.168.11.1 110

  

  被192.168.11.1回復的數據被拷貝給外部客戶。

  

  但是並非所有情況下源高端隨機分配的地址都在1024--5000之間。IP偽裝就是例外:

  

  IP偽裝:

  

  [PC] A [Linux MASQ server] B

  __192.168.11.12_|_____192.168.11.5__|___1.2.3.4_________Internet

  

  PC A要通過B偽裝上網。如要訪問www.linuxforum.net,則偽裝時的包重寫過程如下:

  

  源地址/端口號和目標地址/端口號為:

  192.168.11.12 1047 202.106.124.185 80

  被偽裝後的源地址和端口號和目標地址/端口號為:

  1.2.3.4 62334 202.106.124.185 80

  

  反回的包為

  202.106.124.185 80 -- 1.2.3.4 62334

  再被重寫給PC A為:

  202.106.124.185 80 -- 192.168.11.12 1047

  

  一般來說,IP偽裝後的源地址通常>60000,且在61000--64999之間。

  在防火牆上維護著一張IP偽裝的對照表。用命令/sbin/ipchains -M -L -n可以看到如:

  [root@proxy etc]# /sbin/ipchains -M -L -n

  IP masquerading entries

  prot expire source destination ports

  UDP 02:18.86 192.168.11.12 205.188.179.41 1215 (62615) -> 4000

  TCP 17:03.20 192.168.11.12 205.188.248.57 1049 (62584) -> 80

  

  從ports欄你可以對照兩次源地址的匹配。

  

  端口轉發(port forwarding):

  見文章薈萃中另一篇文章《利用端口轉發由內部網對外提供網絡服務》

  

  第二部分各種代理方式的適用情況和優缺點

  

  各種代理方式的作用:

  1. IP偽裝,Squid傳統代理和透明代理適合讓局域網上無真實IP地址的用戶訪問Internet.

  2. Apache反向代理,plug-gw通用代理,端口轉發適合讓外部用戶訪問局域網內無真實IP地址的服務器。

  

  各種代理方式的優缺點:

  1. Squid的優點是對客戶端要求很少,隻要能連通squid服務器即可。但是需要每台機器都設置代理服務器IP地址和端口號

  2. Squid透明代理的優點是不需要每個客戶機都設置代理地址和端口與,簡化了用戶端配置。但是需要每台客戶機的默認網關都設為squid代理服務器,且需要客戶端來做DNS解析

  3. IP偽裝可適合大多數應用層服務,不象squid僅支持httpftp.但也需要客戶的默認網關設為防火牆的地址。且不象squidcache功能

  4. plug-gw可代理各種服務器象HTTP,POP3等。但Apache反向代理則隻能代理http反向請求

5. 端口轉發適合大多數服務。與具體的應用無關。且速度快,在內核IP層實現,無需要特別的應用層服務在運行。但可能需要重新編譯內核。

Linux 透明代理環境使用 NetMeeting 心得..

  經過我的千辛萬苦的搜索,終於找到解決方法啦... 解決如下:

  先去 http://gzcs.d2g.com/forum 下載一個內核的補丁文件

  newnat5-and-helpers-2.4.16.patch.gz

  支持kernel 2.4.16 所以如果你沒有2.4.16內核就要再去http://www.kernel.org 下載一個..(因為我沒試過再2.4.16更高的版本裝過,不知道行不行)

  然後就當然是對內核打補丁了啦..

  gzip -cd newnat5-and-helpers-2.4.16.patch.gz | patch -p1 -E

  OK! 打完補丁就要make menuconfig. 記住把ip_nat_h323 的選上..

  然後就可以譯編內核羅,裝好新內核, 這方面我就不多講了..

  之後還有啟用我們所編的模塊..

  /sbin/modprobe ip_nat_h323

  /sbin/modprobe ip_conntrack_h323

  然後在防火牆增加以下規則..

  /sbin/iptables -I INPUT -p tcp -i ppp0 --dport 1720 -j ACCEPT

  /sbin/iptables -t nat -I PREROUTING -i ppp0 -j DNAT -p tcp --dport 1720 --to ipaddress:1720 (這裡的ipaddress就設你允許給那個用戶使用NETMEETING的機器IP地址羅)

  好! 就這樣通話無阻... :) Good Lucky...

  

  這裡附上關於這方面的英文文章地址:

  http://mail.gnome.org/archives/gnomemeeting-list/2001-October/msg00003.html

  

  http://roeder.goe.net/~koepi/

最新文章
 [專題]上網代理服務器常見問題
 代理服務器簡介
 什麼是透明代理?
 網站 Alexa 流量、訪問量、頁面瀏覽量排名查詢
 自己建設代理服務器
 什麼是 Proxy ?
 挑挑揀揀選個好代理
特別推薦
本周熱點