如何用JAVA实现一个代理服务器

如何用JAVA实现一个代理服务器,第1张

代理服务器的应用非常广泛。比如,在企业网内部,它可以用来控制员工在工作时浏览的Internet内容,阻止员工访问某些类型的内容或某些指定的网站。代理服务器实际上扮演着浏览器和Web服务器之间的中间人的角色,能够对浏览器请求进行各种各样的处理,能够过滤广告和Cookie,能够预先提取Web页面,使得浏览器访问页面的速度更快,等等。

一、基础知识

不管以哪种方式应用代理服务器,其监控HTTP传输的过程总是如下:

步骤一:内部的浏览器发送请求给代理服务器。请求的第一行包含了目标URL。

步骤二:代理服务器读取该URL,并把请求转发给合适的目标服务器。

步骤三:代理服务器接收来自Internet目标机器的应答,把应答转发给合适的内部浏览器。

例如,假设有一个企业的雇员试图访问wwwcnibmcom网站。如果没有代理服务器,雇员的浏览器打开的Socket通向运行这个网站的Web服务器,从Web服务器返回的数据也直接传递给雇员的浏览器。如果浏览器被配置成使用代理服务器,则请求首先到达代理服务器;随后,代理服务器从请求的第一行提取目标URL,打开一个通向wwwcnibmcom的Socket。当wwwcnibmcom返回应答时,代理服务器把应答转发给雇员的浏览器。

当然,代理服务器并非只适用于企业环境。作为一个开发者,拥有一个自己的代理服务器是一件很不错的事情。例如,我们可以用代理服务器来分析浏览器和Web服务器的交互过程。测试和解决Web应用中存在的问题时,这种功能是很有用的。我们甚至还可以同时使用多个代理服务器(大多数代理服务器允许多个服务器链接在一起使用)。例如,我们可以有一个企业的代理服务器,再加上一个用java编写的代理服务器,用来调试应用程序。但应该注意的是,代理服务器链上的每一个服务器都会对性能产生一定的影响。

二、设计规划

正如其名字所示,代理服务器只不过是一种特殊的服务器。和大多数服务器一样,如果要处理多个请求,代理服务器应该使用线程。下面是一个代理服务器的基本规划:

等待来自客户(Web浏览器)的请求。

启动一个新的线程,以处理客户连接请求。

读取浏览器请求的第一行(该行内容包含了请求的目标URL)。

分析请求的第一行内容,得到目标服务器的名字和端口

打开一个通向目标服务器(或下一个代理服务器,如合适的话)的Socket。

把请求的第一行发送到输出Socket。

把请求的剩余部分发送到输出Socket。

把目标Web服务器返回的数据发送给发出请求的浏览器。

当然,如果考虑细节的话,情况会更复杂一些。实际上,这里主要有两个问题要考虑:第一,从Socket按行读取数据最适合进一步处理,但这会产生性能瓶颈;第二,两个Socket之间的连接必需高效。有几种方法可以实现这两个目标,但每一种方法都有各自的代价。例如,如果要在数据进入的时候进行过滤,这些数据最好按行读取;然而,大多数时候,当数据到达代理服务器时,立即把它转发出去更适合高效这一要求。另外,数据的发送和接收也可以使用多个独立的线程,但大量地创建和拆除线程也会带来性能问题。因此,对于每一个请求,我们将用一个线程处理数据的接收和发送,同时在数据到达代理服务器时,尽可能快速地把它转发出去。

三、实例

在用java编写这个代理服务器的过程中,注意可重用性是很重要的。因为这样的话,当我们想要在另一个工程中以不同的方式处理浏览器请求时,可以方便地重用该代理服务器。当然,我们必须注意灵活性和效率之间的平衡。

图一显示了本文代理服务器实例(HttpProxyjava)的输出界面,当浏览器访问http://www-900ibmcom/cn/时,代理服务器向默认日志设备(即标准输出设备屏幕)输出浏览器请求的URL。图二显示了SubHttpProxy的输出。SubHttpProxy是HttpProxy的一个简单扩展。

图一

图二

为了构造代理服务器,我从Thread基类派生出了HttpProxy类(文章正文中出现的代码是该类的一些片断,完整的代码请从本文最后下载)。HttpProxy类包含了一些用来定制代理服务器行为的属性,参见Listing 1和表一。

Listing 1

/

一个基础的代理服务器类

/

import javanet;

import javaio;

public class HttpProxy extends Thread {

static public int CONNECT_RETRIES=5;

static public int CONNECT_PAUSE=5;

static public int TIME-OUT=50;

static public int BUFSIZ=1024;

static public boolean logging = false;

static public OutputStream log=null;

// 传入数据用的Socket

protected Socket socket;

// 上级代理服务器,可选

static private String parent=null;

static private int parentPort=-1;

static public void setParentProxy(String name, int pport) {

parent=name;

parentPort=pport;

}

// 在给定Socket上创建一个代理线程。

public HttpProxy(Socket s) { socket=s; start(); }

public void writeLog(int c, boolean browser) throws IOException {

logwrite(c);

}

public void writeLog(byte[] bytes,int offset,

int len, boolean browser) throws IOException {

for (int i=0;i<len;i++) writeLog((int)bytes[offset+i],browser);

}

// 默认情况下,日志信息输出到

// 标准输出设备,

// 派生类可以覆盖它

public String processHostName(String url, String host, int port, Socket sock) {

javatextDateFormat cal=javatextDateFormatgetDateTimeInstance();

Systemoutprintln(calformat(new javautilDate()) + " - " +

url + " " + sockgetInetAddress()+"<BR>");

return host;

}

表一

变量/方法 说明

CONNECT_RETRIES 在放弃之前尝试连接远程主机的次数。

CONNECT_PAUSE 在两次连接尝试之间的暂停时间。

TIME-OUT 等待Socket输入的等待时间。

BUFSIZ Socket输入的缓冲大小。

logging 是否要求代理服务器在日志中记录所有已传输的数据(true表示“是”)。

log 一个OutputStream对象,默认日志例程将向该OutputStream对象输出日志信息。

setParentProxy 用来把一个代理服务器链接到另一个代理服务器(需要指定另一个服务器的名称和端口)。

当代理服务器连接到Web服务器之后,我用一个简单的循环在两个Socket之间传递数据。这里可能出现一个问题,即如果没有可操作的数据,调用read方法可能导致程序阻塞,从而挂起程序。为防止出现这个问题,我用setSoTimeout方法设置了Socket的超时时间(参见Listing 2)。这样,如果某个Socket不可用,另一个仍旧有机会进行处理,我不必创建一个新的线程。

Listing 2

// 执行操作的线程

public void run() {

String line;

String host;

int port=80;

Socket outbound=null;

try {

socketsetSoTimeout(TIMEOUT);

InputStream is=socketgetInputStream();

OutputStream os=null;

try {

// 获取请求行的内容

line="";

host="";

int state=0;

boolean space;

while (true) {

int c=isread();

if (c==-1) break;

if (logging) writeLog(c,true);

space=CharacterisWhitespace((char)c);

switch (state) {

case 0:

if (space) continue;

state=1;

case 1:

if (space) {

state=2;

continue;

}

line=line+(char)c;

break;

case 2:

if (space) continue; // 跳过多个空白字符

state=3;

case 3:

if (space) {

state=4;

// 只分析主机名称部分

String host0=host;

int n;

n=hostindexOf("//");

if (n!=-1) host=hostsubstring(n+2);

n=hostindexOf('/');

if (n!=-1) host=hostsubstring(0,n);

// 分析可能存在的端口号

n=hostindexOf(":");

if (n!=-1) {

port=IntegerparseInt(hostsubstring(n+1));

host=hostsubstring(0,n);

}

host=processHostName(host0,host,port,socket);

if (parent!=null) {

host=parent;

port=parentPort;

}

int retry=CONNECT_RETRIES;

while (retry--!=0) {

try {

outbound=new Socket(host,port);

break;

} catch (Exception e) { }

// 等待

Threadsleep(CONNECT_PAUSE);

}

if (outbound==null) break;

outboundsetSoTimeout(TIMEOUT);

os=outboundgetOutputStream();

oswrite(linegetBytes());

oswrite(' ');

oswrite(host0getBytes());

oswrite(' ');

pipe(is,outboundgetInputStream(),os,socketgetOutputStream());

break;

}

host=host+(char)c;

break;

}

}

}

catch (IOException e) { }

} catch (Exception e) { }

finally {

try { socketclose();} catch (Exception e1) {}

try { outboundclose();} catch (Exception e2) {}

}

}

和所有线程对象一样,HttpProxy类的主要工作在run方法内完成(见Listing 2)。run方法实现了一个简单的状态机,从Web浏览器每次一个读取字符,持续这个过程直至有足够的信息找出目标Web服务器。然后,run打开一个通向该Web服务器的Socket(如果有多个代理服务器被链接在一起,则run方法打开一个通向链里面下一个代理服务器的Socket)。打开Socket之后,run先把部分的请求写入Socket,然后调用pipe方法。pipe方法直接在两个Socket之间以最快的速度执行读写操作。

如果数据规模很大,另外创建一个线程可能具有更高的效率;然而,当数据规模较小时,创建新线程所需要的开销会抵消它带来的好处。

Listing 3显示了一个很简单的main方法,可以用来测试HttpProxy类。大部分的工作由一个静态的startProxy方法完成(见Listing 4)。这个方法用到了一种特殊的技术,允许一个静态成员创建HttpProxy类(或HttpProxy类的子类)的实例。它的基本思想是:把一个Class对象传递给startProxy类;然后,startProxy方法利用映像API(Reflection API)和getDeclaredConstructor方法确定该Class对象的哪一个构造函数接受一个Socket参数;最后,startProxy方法调用newInstance方法创建该Class对象。

Listing 3

// 测试用的简单main方法

static public void main(String args[]) {

Systemoutprintln("在端口808启动代理服务器\n");

HttpProxylog=Systemout;

HttpProxylogging=false;

HttpProxystartProxy(808,HttpProxyclass);

}

}

Listing 4

static public void startProxy(int port,Class clobj) {

ServerSocket ssock;

Socket sock;

try {

ssock=new ServerSocket(port);

while (true) {

Class [] sarg = new Class[1];

Object [] arg= new Object[1];

sarg[0]=Socketclass;

try {

javalangreflectConstructor cons = clobjgetDeclaredConstructor(sarg);

arg[0]=ssockaccept();

consnewInstance(arg); // 创建HttpProxy或其派生类的实例

} catch (Exception e) {

Socket esock = (Socket)arg[0];

try { esockclose(); } catch (Exception ec) {}

}

}

} catch (IOException e) {

}

}

利用这种技术,我们可以在不创建startProxy方法定制版本的情况下,扩展HttpProxy类。要得到给定类的Class对象,只需在正常的名字后面加上class(如果有某个对象的一个实例,则代之以调用getClass方法)。由于我们把Class对象传递给了startProxy方法,所以创建HttpProxy的派生类时,就不必再特意去修改startProxy。(下载代码中包含了一个派生得到的简单代理服务器)。

结束语

利用派生类定制或调整代理服务器的行为有两种途径:修改主机的名字,或者捕获所有通过代理服务器的数据。processHostName方法允许代理服务器分析和修改主机名字。如果启用了日志记录,代理服务器为每一个通过服务器的字符调用writeLog方法。如何处理这些信息完全由我们自己决定——可以把它写入日志文件,可以把它输出到控制台,或进行任何其他满足我们要求的处理。writeLog输出中的一个Boolean标记指示出数据是来自浏览器还是Web主机。

和许多工具一样,代理服务器本身并不存在好或者坏的问题,关键在于如何使用它们。代理服务器可能被用于侵犯隐私,但也可以阻隔偷窥者和保护网络。即使代理服务器和浏览器不在同一台机器上,我也乐意把代理服务器看成是一种扩展浏览器功能的途径。例如,在把数据发送给浏览器之前,可以用代理服务器压缩数据;未来的代理服务器甚至还可能把页面从一种语言翻译成另一种语言……可能性永无止境。

问题一:怎么设置代理服务器上网 在IE内,执行菜单命令“工具”/“I胆ternet选项”,然后打开一个对话框

在对话框内选择“连接”,然后点击下方的“局域网设置”按钮。在新的对话框中选中“为LAN设置代理服务器”,在“地址”栏和“端口”栏分别输入代理服务器地址和端口号,,然后按确定就可以了

问题二:怎样通过国外的代理服务器上网? 浏览器里面 工具 internet选项 连接 局域网设置

在为lan使用代理服务器打勾

在下面的第一个写地址第二个写端口,然后确定

就可以通过代理来上了

地址和端口去proxy/proxy1骇看

想用哪国的选哪个,不过不能保证每个都行,但肯定有可以的,多试几个

type下面是的

问题三:如何通过代理服务器上网 右键点ie-属性-Internet选项-连接-选择你现在的上网方式 然后在下面选设置-代理服务器选项下面选对此链接使用 填入你已有的ip 端口 确定即可 最好在QQ里面测试下得到的ip是否通

INTERNET选项链接框最下面有局域网设置!点后选择代理服务器,在里面填上**和端口

问题四:用代理服务器上网是什么意思 您丁

代理服务器(Proxy Server)是个人网络和Internet服务商之间的中间代理机构,它负责转发合法的网络信息,对转发进行控制和登记。代理服务器作为连接Internet与Intranet的桥梁,在实际应用中发挥着极其重要的作用,它可用于多个目的,最基本的功能是连接,此外还包括安全性,缓存,内容过滤,访问控制管理等功能。代理服务器,顾名思义就是局域上不能直接上网的机器将上网请求(比如说,浏览某个主页)发给能够直接上网的代理服务器,然后代理服务器代理完成这个上网请求,将它所要浏览的主页调入代理服务器的缓存;然后将这个页面传给请求者。这样局域网上的机器使用起来就像能够直接访问网络一样。并且,代理服务器还可以进行一些网站的过滤和控制的功能,这样就实现了我们控制和节省上网费用。

代理服务器能够让多台没有IP地址的电脑使用其代理功能高速、安全地访问互联网资源。当代理服务器客户端发出一个对外的资源访问请求,该请求先被代理服务器识别并由代理服务器代为向外请求资源。由于一般代理服务器拥有较大的带宽,较高的性能,并且能够智能地缓存已浏览或未浏览的网站内容,因此,在一定情况下,客户端通过代理服务器能更快速地访问网络资源。代理服务器应用的常见例子:拥有上百台电脑的局域网通过一台能够访问外部网络资源的代理服务器而也能访问外部互联网。

问题五:如何在通过代理服务器上网的局域网内使用代理 本服务器(也是代理服务器)上使用ccproxy做为代理服务器软件好了,上面可丁填二级代理,也就是可以填大局域网内代理器

问题六:怎么使用代理IP上网? 首先你需要到网上找代理服务器ip和端口,一般搜索一下”**“就能找到,然后按如下方法设置:打开浏览器-工具-I叮ternet选项-连接-设置(S)如果你是局域网请选择底部的 局域网设置(L) -对此连接使用代理服务器(打钩),填上你找到的ip地址和端口即可。注意端口一定要填写正确。

问题七:用代理服务器上网怎么设置才能拨通*** 10分 在IE内,执行菜单命令“工具”/“INternet选项”,然后打开一个对话框

在对话框内选择“连接”,然后点击下方的“局域网设置”按钮。在新的对话框中选中“为LAN设置代理服务器”,在“地址”栏和“端口”栏分别输入代理恭务器地址和端口号,,然后按确定就可以了

问题八:怎么知道自己的电脑是不是通过代理服务器上网啊? 第一步:打开IE浏览器,选择菜单栏的“工具/Internet选项”

第二步:点击“Internet选项”中的“连接”选项卡

第三步:点击“局域网(LAN)设置”栏中的“局域网设置”,看看在“代理服务器”栏下有没有钩选“为LAN使用代理服务器”

问题九:用代理服务器怎么在家电脑上上网 点击桌面右下角任务栏里的网络图标,然后在弹出的小窗口中点击“打开网络和共享中心”。

打开网络和共享中心之后,点击窗口左下角的“Internet选项”。

此时会打开Internet属性的窗口,首先点击窗口顶部的“连接”选项卡。

进入连接选项卡之后,点击窗口下方的“局域网设置”按钮。

打开局域网设置窗口之后,首先勾选“为LAN使用代理服务器”选项。

勾选后,在下方的地址后输入代理IP地址,端口后输入代理IP的端口,输入完成后点击“确定”。

问题十:用路由器上网如何设置代理服务器 希望能够帮到你第一步:打开IE浏览器,选择菜单栏的“工具/Internet选项”第二步:点击“Internet选项”中的“连接”选项卡, 第三步:点击“局域网(LAN)设置”栏中的“局域网设置”,在“代理服务器”栏下首先钩选“为LAN使用代理服务器”, 并在“地址”和“端口”一栏分别填入“611294230”和“8080”,并勾上“对于本地地址不使用代理服务器”,点击“确定”即可。 libraryfudanedu/xy

  在电脑的网络和共享中心界面,选择设置新的连接或网络-连接到工作区;点击使用我的Internet连接(***),输入Internet地址;输入你申请的账号和密码,验证成功后即可成功连接到代理服务器。具体介绍如下:

  1、在电脑中的网络和共享中心界面下,单击设置新的连接或网络,选择连接到工作区,单击下一步;

  2、选择否,创建新连接,单击下一步;

  3、点击使用我的Internet连接(***);

  4、输入Internet地址,也就是你申请的代理服务器地址,可以是IP地址,也可以是域名,还可以是MAC地址;

  5、输入你申请的账号和密码,复选框以及域(可选)根据个人意愿填写,单击连接,验证成功后即可成功连接到代理服务器。

代理服务器有很多种,大体分为三类:HTTP、FTP、SOCKS,其中又分为透明代理和不透明代理,透明代理一般是网关,为硬件

过程:

(1)客户端先和代理服务器通讯,建立TCP连接,目的IP是代理服务器的IP

(2)客户端发出GET命令,GET命令中包含URL或IP地址、明文

(3)代理服务器将其中的URL转换为IP地址,可能会有DNS,将源数据包中的数据拷贝下来,去掉URL,重新组包再发出去

(4)代理服务器和真实服务器通讯,源IP是代理服务器的IP

以上就是代理的实现原理,在我们日常生活中只有在学习IT才会了解哦,我也是在黑马程序员学习之后才了解的。

搜狗高速浏览器是一款集高效、稳定于一身的现代化网络浏览工具。利用先进的渲染引擎和优化算法,搜狗高速浏览器确保了卓越的页面加载速度和流畅的多媒体体验。具备全方位的安全防护特性,能有效防御各类网络威胁,同时支持HTML5和CSS3,确保了与最新网络技术标准的完美兼容。欲了解更多或立即下载,请访问https://sogou37moyucom/

  摘要:代理服务器是介于浏览器和Web服务器之间的一台服务器,当你通过代理服务器上网浏览时,浏览器不是直接到Web服务器去取回网页,而是向代理服务器发出请求,由代理服务器来取回浏览器所需要的信息,并传送给你的浏览器。

  代理服务器代理服务器有哪几种 如何获取代理服务器

  代理,也称网络代理,是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。一些网关、路由器等网络设备具备网络代理功能。一般认为代理服务有利于保障网络终端的隐私或安全,防止攻击。

  代理服务器的种类

  HTTP代理

  www对于每一个上网的人都再熟悉不过了,www连接请求就是采用的http协议,所以我们在浏览网页,下载数据(也可采用ftp协议)时就是用http代理。它通常绑定在代理服务器的80、3128、8080等端口上。

  socks代理

  相应的,采用socks协议的代理 服务器 就是SOCKS服务器,是一种通用的代理服务器。Socks是个电路级的底层网关,是DavidKoblas在1990年开发的,此后就一直作为Internet RFC标准的开放标准。Socks不要求应用程序遵循特定的操作系统平台,Socks代理与应用层代理、HTTP层代理不同,Socks代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求)。所以,Socks代理比其他应用层代理要快得多。它通常绑定在代理服务器的1080端口上。如果您在企业网或校园网上,需要透过防火墙或通过代理服务器访问Internet就可能需要使用SOCKS。一般情况下,对于拨号上网用户都不需要使用它。注意,浏览网页时常用的代理服务器通常是专门的http代理,它和SOCKS是不同的。因此,您能浏览网页不等于您一定可以通过SOCKS访问Internet。常用的防火墙,或代理软件都支持SOCKS,但需要其管理员打开这一功能。如果您不确信您是否需要SOCKS或是否有SOCKS可用,请与您的网络管理员联系。为了使用socks,您需要了解一下内容:

  ①SOCKS服务器的IP地址

  ②SOCKS服务所在的端口

  ③这个SOCKS服务是否需要用户认证?如果需要,您要向您的网络管理员申请一个用户和口令。

  知道了上述信息,您就可以把这些信息填入“网络配置”中,或者在第一次登记时填入,您就可以使用socks代理了。

  在实际应用中SOCKS代理可以用作为:电子邮件、新闻组软件、网络传呼ICQ、网络聊天MIRC和使用代理服务器上联众打游戏等等各种 游戏 应用软件当中。

  ***代理

  指在共用网络上建立专用网络的技术。之所以称为虚拟网主要是因为整个***网络的任意两个结点之间的连接并没有传统专网建设所需的点到点的物理链路,而是架构在公用网络服务商ISP所提供的网络平台之上的逻辑网络。用户的数据是通过ISP在公共网络(Internet)中建立的逻辑隧道(Tunnel),即点到点的虚拟专线进行传输的。通过相应的加密和认证技术来保证用户内部网络数据在公网上安全传输,从而真正实现网络数据的专有性。

  反向代理

  反向代理服务器架设在服务器端,通过缓冲经常被请求的页面来缓解服务器的工作量。安装反向代理服务器有几个原因:加密和SSL加速,负载平衡,缓存静态内容,压缩减速上传,安全外网发布,大多使用开放源代代码的squid做反向代理

  其他类型

  FTP代理:能够代理客户机上的FTP软件访问FTP服务器

  RTSP代理:代理客户机上的Realplayer访问Real流媒体服务器

  POP3代理:代理客户机上的邮件软件用POP3方式收发邮件

  如何获取代理服务器

  有两种方法可以获取代理服务器,从上面的内容我们已经知道,要找代理服务器其实就是要找出该服务器的IP地址、服务类型及所用端口,我们可以使用“代理猎手Proxy Hunter”这个软件来搜索,也可以通过第三方代理发布网站获取。

  第一种方法

  简单介绍一下代理猎手使用方法:

  1、启动代理猎手,在左上方的“IP地址范围”输入起止地址,比如你要查找2106200-->2106300这个IP段内的代理服务器,就在左栏输入:2106200,在右栏输入:2106300。然后点击〔添加地址〕按钮,这时该段地址就会加入搜索任务中。

  2、选择端口范围。代理猎手支持搜索HTTP代理和SOCKS代理,你可以把上面列出的这两种代理常用的端口加入。加入方法:在“端口范围”的第一个空白栏输入“8080”,第二栏也输入“8080”,类型选择“HTTP”,然后点击〔添加端口〕按钮,你就会发现端口列表中出现“8080|8080|HTTP”。按此方法再加入下列端口:“80|80|HTTP”、“3128|3128|HTTP”、“8081|8081|HTTP”、“9080|9080|HTTP”、“1080|1080|SOCKS”。

  3、点击〔参数设定〕按钮,把{搜索验证设置}的“连接超时时间”改为6,“验证超时时间”改为30,“并发连接数目”改为100;{验证设置}的“连接超时时间”改为45,“验证超时时间”改为90。这些数值设置太小会导致代理地址找不全,太大又会浪费时间=金钱。确定后返回。

  4、点击〔开始搜索〕按钮,一找到代理服务器就会显示在左下方的列表中,只有验证状态显示为“Free x秒”的是可以使用的免费代理服务器。

  验证

  代理猎手的右下方有8个按钮,第一个是“检验”、第二个是“检验全部”,我们可以按〔检验全部〕来验证列表中的所有代理是否可以使用,也可以在列表中选中一个或多个代理地址后,点击〔检验〕,只验证这几个代理是否可以使用。验证完毕后,点击列表的标题“验证状态”,可以把可用的代理服务器集中排列在列表的前面,方便查找。

  导出导入

  如果你找到了许多代理服务器,想送给朋友,你就可以点击〔导出结果〕按钮,把所选的或全部的代理地址保存在一个扩展名为txt的文本文件中(使用代理猎手30版的要注意,导出时至少应把“内容设定”下的“类型”也选中,一起导出),然后把这个文件传给你的朋友就行了。你的朋友得到这个文件后,可以用〔导入结果〕按钮,将这些地址引入到他的《代理猎手》列表中(使用代理猎手30版本的要注意,在使用导入结果时,当弹出选择文件对话框时要把最下面的“避免导入重复项”选中,才不会使列表中出现重复的地址)。

  如果你在网上找到网友公布的代理地址,如何将这些地址导入《代理猎手》中呢?方法如下:

  1、打开一个文本编辑器(如Windows自带的记事本)。

  2、按此格式“地址:端口@类型”输入地址,每个地址独占一行。注意:其中的“:”和“@”都是英文的标点,不能使用中文标点。对于类型是@HTTP的可以省略为“地址:端口”而不必写后面的@HTTP。如:

  7712590:1080@SOCKS5

  77125146:21@FTP

  17365126:3128

  782635:80

  3、把这个文件取任意名保存起来,如proxytxt。

  4、启动代理猎手,选择“导入结果”,找到刚才编辑的proxytxt文件,导入即可(记住要选中“避免导入重复项”)。

  5、选中刚才导入的结果,点击〔检验〕,能不能用就清楚了。

  代理技巧

  在搜索代理服务器时,输入的IP范围非常重要,一般来说,设置代理服务器比较多的地方是一些经济比较发达的地区,你可以找到全国各省市的IP地址,然后有针对性地进行搜索。

  代理服务器新手应用指南

  首先我要说明,我们这里要谈的代理,是代理服务器,英文名叫Proxy Server。一般来讲,对于我们这些普通的网民它的作用有二个(撇开一些高深的用处不谈,因为我们未必会用到):

  一是通过它,我们可以访问到一些平时不能去的网站。不信你可以马上打开你的浏览器和输入这个网址。怎样?不用看着浏览器在这里空等了,并不是你的网络速度慢,也不是没有这个网站,而是你访问不到它(网络上还有很多这些类型的网站哦)。为什么访问不到?这个问题嘛……说法有很多种,大部分都说是国内的网络被限制了访问,所以某些网站是不能去的。至于如何可以访问到这些网站?看完本文你就知道了!

  二是通过它来加快我们浏览某些网站的速度。有时候我们访问一些国外或者港台网站,速度慢得像蜗牛一样。但只要你正确的选用代理服务器,速度就可以得到提升,有时候这些速度的提升可是很明显的哦!

  如果你在以往浏览过程中出现过以上的情况,那么看来你有必要尝试一下使用代理服务器了。

  为什么使用代理服务器可以使我们访问一些原本不能访问的网站呢?为什么使用它后浏览外国网站会比原来的快呢?形象的说:代理服务器是网络信息的中转站。在一般情况下,我们使用网络浏览器直接去连接其他Internet站点取得网络信息时,须送出Request信号来得到回答,然后对方再把信息以bit方式传送回来。

  代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,Request信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。而且,大部分代理服务器都具有缓冲的功能,就好像一个大的Cache,它有很大的存储空间,它不断将新取得数据储存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率(速度会随着代理服务器地理位置的不同以及网络传输情况而改变),而且国外的网络大部分都是没有限制访问网站或者所限制的不同,所以我们有很大的机会通过代理服务器去访问那些原本不能够去的网站。

  更重要的是:Proxy Server(代理服务器)是Internet链路级网关所提供的一种重要的安全功能,它的工作主要在开放系统互联(OSI)模型的对话层。

  proxy对于我们这么有用,那么究竟怎样才可以在偌大的网络上找寻这些服务器呢?这就要靠一些专门找寻proxy的软件了,下面就是几款常用软件的介绍:

  一Proxy Hunter

  这是Proxy搜索软件的老大哥了,自从10推出以来,就倍受全国网友热爱,版本是30,这个Proxy Hunter有什么特点呢带有预测搜索任务完成时间的功能,除了教育网外,不限制搜索IP地址范围,同时支持HTTP与SOCKS类Proxy的搜索和验证,具备对已搜索得的Proxy地址进行管理,使用,自动调度,再验证等先进的功能。当有一大堆Proxy,不知用哪个好时,这时你需要自动调度功能,将网络软件的Proxy设置为本机IP(127001),端口8080,然后在Proxy Hunter搜索结果列表中将欲使用的Proxy按鼠标右键设为“使用”(Enable),这样Proxy Hunter就会根据当时各Proxy速度的快慢,选择一个或数个使用,很方便吧。

  二Proxy NOW系列

  这是由网站自动更新软件Update NOW的作者开发的,由HTTP Proxy NOW、SOCKS Proxy NOW、FTP Proxy NOW三部分组成,顾名思义,功能是分别搜索上述三类Proxy用的,若是能将其合一在一个软件里就好了,Proxy NOW系列的优点是绝对不限制搜索IP范围,但没注册进入时会有延时,不过只有几秒钟,没大碍,搜索速度还可以,算是中规中矩,缺点是功能分散单一,可设置项较少,验证不那么完善。

  三SOCKS Cat

  这是专门搜索SOCKS Proxy的,同样不限制搜索IP地址范围,速度也比较快,据作者称,其速度只比Proxy Hunter慢些,不过在验证SOCKS Proxy方面要做得好,同时支持SOCKS4、SOCKS5的Proxy的搜索和验证,支持设置供验证的网页,设置最高连接数等,经实际使用,效果不错,如果能加入对HTTP Proxy的搜索和验证功能可能会更好。

  当然,有些搜索经验也应该掌握,搜索Proxy,如大海捞针,不掌握要领,可是要吃大亏的。大规模搜索,效果好,但成本高,耗时长,不值得推荐。经过实践,局部地区震荡IP搜索法较好。例如,你所在地有一大ISP或者是ICP,假设其IP地址为20296123123,这时请以总数1275(255×5)为震荡范围,计算出应尝试搜索的范围是202961210至20296125255,祝你好运!还有连接时间设长一点,以及注意加入以下端口8080(HTTP)3128(HTTP)80(HTTP)1080(SOCKS)这样才不会有漏网之鱼。

  接下来将以ProxyHunter为例子,为大家讲解如何搜索proxy。

  当你填加完任务后,返回到主界面,按蓝色的开始键,这样ProxyHunter就会开始搜索代理了。你需要做的事情就是盯住搜索结果栏和耐心地等待。

  服务器地址:这里出现的就是你搜索到的代理服务器的IP。

  端口:这个是它所用的端口。

  类型:就是这个Proxy的类型。

  验证状态:这个最重要,它的状态分几种,上图列出的就是其中几种状态,通常如果成功搜索到这个proxy的话,它会显示为“FREE”,那么你就可以直接使用这个proxy;如果显示为“要密码”的话,基本上你可以把这个proxy删除了,或将其密码破解;要是显示“连接超时”或“连接失败”等其他状态的话,那么可能你现在的网络正处于繁忙状态,也有可能是这个proxy暂时关闭了,你可以隔一段时间再去验证一次。

  时间特性:这个数值影响到这个proxy的速度,它显示的是你的机器连接到proxy的时间,如果你有多个proxy供你选择话,那么就选一个相对数值小的一个吧,连接的时间越小就代表这个porxy越快。

  经过上一步的搜索,想必你已经搜索到几个“Free”属性的Proxy了吧?恭喜恭喜~

  那么究竟怎样才可以用这些Proxy呢?其实很简单,大部分软件都有一些软件属性的选项,比如“Setting”和“Preferences”等等。而在这些选项里面通常会有“Proxy”这个选项,你只需要在“Proxy”选项里面填上你搜索出来的Proxy的IP的端口,那么就可以使用这个Proxy了。如果软件是中文的话那么就更加简单,只要在“设置代理服务器”里面填上就ok了。

  以浏览器IE6为例:

  1、打开“工具”里面的“Internet选项”。

  2、点选“连接”框。

  3、如果你使用拨号上网的话,那么选择“设置”。如果你是使用局域网的话,那么选择“局域网设置”。

  4、在里面就有“代理服务器”这个设置。先点击“使用代理服务器”,然后在“地址”上填上Proxy的IP,在“端口”填上端口。

  第二种方法

  自己通过代理软件去搜索代理服务器对一般用户来说显然太过漫长,其实已有很多搜索出来的代理服务器分享到了第三方的网站,我们只要到这些网站去搜索和找到符合自己想要的代理服务器就可以了,这样的网站很多,在搜索引擎里搜索代理服务器网就能出来很多这样的网站,在这样的网站查找自己满意的代理服务器就可以了。

  

总结而言,搜狗高速浏览器是一款为满足现代网络需求而精心打造的浏览器。其专业的开发团队不仅注重提供一流的用户体验,还致力于不断优化网页执行速度,增强安全性,以及支持各类扩展插件,从而实现高度个性化的浏览体验。如果您在寻找一款可靠、高效和技术先进的浏览器,搜狗高速浏览器将是您的理想选择。请访问官方网站https://sogou37moyucom/ 下载并体验搜狗高速浏览器,感受由先进技术所驱动的非凡浏览体验。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何用JAVA实现一个代理服务器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情