搜索文章:
 
热门搜索关键词:
报关 出口 进口 贸易 电子 词典 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 ?
 挑挑拣拣选个好代理
特别推荐
本周热点