Linux中配置代理服务器及高性能代理软件比较

一、代理服务器概述

1.1什么是代理服务器

在">TCP/IP网络中,传统的通信过程是这样的:客户端向服务器请求数据,服务器响应该请求,将数据传送给客户端。在引入了代理服务器以后,这一过程变成了这样:客户端向服务器发起请求,该请求被送到代理服务器;代理服务器分析该请求,先查看自己缓存中是否有请求数据,如果有就直接传送给客户端,如果没有就代替客户端向该服务器发出请求。服务器响应以后,代理服务器将响应的数据传送给客户端,同时在自己的缓存中保留一份该数据的拷贝。这样,再有客户端请求相同的数据时,代理服务器就可以直接将数据传送给客户端,而不需要再向该服务器发起请求。

1.2 代理服务器的功能

一般说来,代理服务器具有以下的功能:

1.通过缓存增加访问速度

随着Internet的迅猛发展,网络带宽变得越来越珍贵。所以为了提高访问速度,好多ISP都提供代理服务器,通过代理服务器的缓存功能来加快网络的访问速度。一般说来,大多数的代理服务器都支持HTTP缓存,但是,有的代理服务器也支持FTP缓存。在选择代理服务器时,对于大多数的组织,只需要HTTP缓存功能就足够了。

通常,缓存有主动缓存被动缓存之分。所谓被动缓存,指的是代理服务器只在客户端请求数据时才将服务器返回的数据进行缓存,如果数据过期了,又有客户端请求相同数据时,代理服务器又必须重新发起新的数据请求,在将响应数据传送给客户端时又进行新的缓存。所谓主动缓存,就是代理服务器不断地检查缓存中的数据,一旦有数据过期,则代理服务器主动发起新的数据请求来更新数据。这样,当有客户端请求该数据时就会大大缩短响应时间。还需要说明的是,对于数据中的认证信息,大多数的代理服务器都不会进行缓存的。

2.提供用私有IP访问Internet的方法

IP地址是不可再生的宝贵资源,假如你只有有限的IP地址,但是需要提供整个组织的Internet访问能力,那么,你可以通过使用代理服务器来实现这一点。

3.提高网络的安全性

这一点是很明显的,如果内部用户访问Internet都是通过代理服务器,那么,代理服务器就成为进入Internet的唯一通道;反过来说,代理服务器也是Internet访问内部网的唯一通道,如果你没有做反向代理,则对于Internet上的主机来说,你的整个内部网只有代理服务器是可见的,从而大大增强了网络的安全性。

1.3 代理服务器的分类及特点

通常的代理服务器分类方法,是从实现的机理分为线路层代理、应用层代理、智能线路层代理等等。在这里,我想从另外一个角度出发,把代理服务器分为传统代理服务器和透明代理服务器。

我认为有必要好好搞清楚两者的区别,只有真正明白了内在地机理,才能在遇到问题时,有章可循,才不会一头雾水,不知从何解决问题。因此,下面我们就通过具体的实例来说明。本章的写作思路来源于Paul Russell所写的IPCHAINS-HOWTO。下面所举的例子也来源于该文章,我觉得我读该文的最大收获在于对内部网访问外部网以及外部网访问内部网的实现手段有了一个清晰的认识。当然,这里所谓的内部网是指使用私有IP的内部网络。

我们的例子都基于以下假设:

你的域名为sample.com,你的内部网(192.168.1.*)用户通过proxy.sample.com(外部接口 eth0:1.2.3.4;内部接口 eth1:192.168.1.1)的代理服务器访问Internet,换句话说,该代理服务器是唯一一台直接与Internet和内部网相连的机器。并假该设代理服务器上运行着某种代理服务器软件(如squid)。假设内部网中某一客户机为client.sample.com(192.168.1.100)。

+-------------------+

|内部网(192.168.1.*)| eth1+--------+eth0 DDN

| +------------| proxy |<===============>Internet

|client198.168.1.100| +--------+

+-------------------+

eth0: 1.2.3.4

eth1: 198.168.1.1

1.3.1传统代理

在以上基础上我们做以下工作:

1.代理服务软件被绑定到代理服务器的8080端口。

2.客户端浏览器被配置使用代理服务器的8080端口。

3.客户端不需要配置DNS。

4.代理服务器上需要配置代理服务器。

5.客户端不需要配置缺省路由。

当我们在客户端浏览器中打开一个web请求,比如“http://www.linuxaid.com.cn”,这时将陆续发生以下事件:

1.客户端使用某一端口(比如1025)连接代理服务器8080端口,请求web页面“http://www.linuxaid.com.cn”

2.代理服务器向DNS请求“www.linuxaid.com.cn”,得到相应的IP地址202.99.11.120。然后,代理服务器使用某一端口(比如1037)向该IP地址的80端口发起web连接请求,请求web页面。

3.收到响应的web页面后,代理服务器把该数据传送给客户端。

4.客户端浏览器显示该页面。

从www.linuxaid.com.cn的角度看来,连接是在1.2.3.4地1037端口和202.99.11.120的80端口之间建立的。从client的角度看来,连接是在192.168.1.100的1025端口和1.2.3.4的8080端口之间建立的。

1.3.2 透明代理

透明代理的意思是客户端根本不需要知道有代理服务器的存在。

在以上基础上我们做以下工作:

1.配置透明代理服务器软件运行在代理服务器的8080端口。

2.配置代理服务器将所有对80端口的连接重定向到8080端口。

3.配置客户端浏览器直接连解到Internet。

4.在客户端配置好DNS.

5.配置客户端的缺省网关为192.168.1.1.

当我们在客户端浏览器中打开一个web请求,比如“http://www.linuxaid.com.cn”,这时将陆续发生以下事件:

1.客户端向DNS请求“www.linuxaid.com.cn”,得到相应的IP地址202.99.11.120。然后,客户端使用某一端口(比如1066)向该IP地址的80端口发起web连接请求,请求web页面。

2.当该请求包通过透明代理服务器时,被重定向到代理服务器的绑定端口8080。于是,透明代理服务器用某一端口(比如108向202.99.11.120的80端口发起web连接请求,请求web页面。

3.收到响应的web页面后,代理服务器把该数据传送给客户端。

4.客户端浏览器显示该页面。

从www.linuxaid.com.cn的角度看来,连接是在1.2.3.4地1088端口和202.99.11.120的80端口之间建立的。从client的角度看来,连接是在192.168.1.100的1066端口和202.99.11.120的80端口之间建立的。

以上就是传统代理服务器和透明代理服务器的区别所在。

时间: 2024-09-21 09:51:52

Linux中配置代理服务器及高性能代理软件比较的相关文章

10个关于linux中Squid代理服务器的实用面试问答

10个关于linux中Squid代理服务器的实用面试问答 不仅是系统管理员和网络管理员时不时会听到"代理服务器"这个词,我们也经常听到.代理服务器已经成为一种企业常态,而且经常会接触到它.它现在也出现在一些小型的学校或者大型跨国公司的自助餐厅里.Squid(常被视作代理服务的代名词)就是这样一个应用程序,它不但可以被作为代理服务器,其同时也是在该类工具中比较被广泛使用的一种. 本文旨在提高你在遇到关于代理服务器面试点时的一些基本应对能力. 以下为面试问答的内容 1. 什么是代理服务器?

linux 中配置apache 网站 编码设置为gb2312 浏览乱码

问题描述 linux 中配置apache 网站 编码设置为gb2312 浏览乱码 httpd.conf 添加了 AddDefaultCharset GB2312? 网页添加了 浏览器浏览的时候默认编码格式还是utf-8 显示乱码 解决方案 将环境变量LANG设置LANG="zh_CN GBK"

linux中配置vnc遇到的问题

问题描述 linux中配置vnc遇到的问题 把 -nolisten tcp也是一样的结果,请问该怎么修改? 解决方案 显示器设置不对,所以vnc无法启动 解决方案二: 把 vncservers 里面 后加的两个#号去掉.

如何在 CentOS Linux 中配置 MariaDB 复制

如何在 CentOS Linux 中配置 MariaDB 复制 这是一个创建数据库重复版本的过程.复制过程不仅仅是复制一个数据库,同时也包括从主节点到一个从节点的更改同步.但这并不意味着从数据库就是和主数据库完全相同的副本,因为复制可以配置为只复制表结构.行或者列,这叫做局部复制.复制保证了特定的配置对象在不同的数据库之间保持一致. Mariadb 复制概念 备份 :复制可以用来进行数据库备份.例如,当你做了主->从复制.如果主节点数据丢失(比如硬盘损坏),你可以从从节点中恢复你的数据库. 扩展

linux中配置pptp服务器配置的方法_Linux

1.验证内核是否加载了MPPE模块: modprobe ppp-compress-18 && echo MPPE is ok 2.安装所需的软件包: yum -y install ppp wget ftp://rpmfind.net/linux/epel/7/x86_64/p/pptpd-1.4.0-2.el7.x86_64.rpm rpm -ivh pptpd-1.4.0-2.el7.x86_64.rpm 3.配置PPP和PPTP的配置文件: grep ^[^#] /etc/ppp/op

Linux 中流行的邮件传输代理

MTA(Mail transfer Agent)-对于服务器管理员来说,邮件传输代理是最为重要的工具.MTA的主要工作就是将电子邮件从一台主机发送到另一台主机.MTA使用 SMTP(简单邮件传输协议)来传送电子邮件.为了让你更清楚,我们平时用来收发邮件的客户端也使用SMTP,但它们并不是MTA.它们只是一个应用程 序,提供某种接口让用户收发邮件.它们被称为MUA(Mial User Agent)-邮件用户代理. 在Linux操作系统中有很多种邮件传输代理,每个MTA都有自己的长处和弱点.有些易于

Fedora Linux中配置JDK5或JDK6环境变量

上帝终于拯救我了,好长时间都没有找到linux下配JDK环境变量的方法,网上搜了好久,很多都好像没什么作用,还有一些配上以后直接让我的系统崩溃了,昨天我同事给我一个配置方法清单,号称是屡试不爽,我怀着一颗惴惴不安的心情试验了一把,我配的是JDK6.0,没想到第一步完成后执行了一下java -version居然成了,为了保证文档的完整性,我现在把我同事给我的文档全部都贴出来与大家分享,反正,我是只做了第一步就OK了,我用的是Fedora5.大家如果跟我一样不知道如何在linux上配置JDK的可以试

linux中CentOS-6.2系统安装和基本软件环境配置

一.安装CentOS6.2系统 1.选择Desktop进行安装 注:如果修改了主机名,则需要在/etc/hosts文件中增加设置的主机名 2.ssh安全设置(配置文件:/etc/ssh/sshd_config):    1)更改默认22端口:去掉 Port的注释,改成如:22123    2)禁止root账号登录:去掉PermitRootLogin yes注释,改成:PermitRootLogin no    3)新增SSH登录用户,登录成功后再su到root: # useradd xiaoma

linux中配置Nginx 拒绝代理访问

  先大概说说简单的结构-前端一个Nginx反向代理,后端一个Nginx instance app for PHP-实际上就是个Discuz,之前面对CC攻击都是预警脚本或者走CDN,但是这次攻击者不再打流量,而是针对数据库请求页面进行攻击,如search操作-帖子ID F5等..从日志分析来看是从3个URL着手攻击的,当时使用Nginx 匹配$query_string 来return 503-不过会导致页面不能访问,所以想到这么一个折中的办法. 首先你看一段代理请求的日志: ##通过分析,在后