什么是代理服务器,如何使用代理服务器
一、什么是代理服务器?
代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站。
在一般情况下,我们使用网络浏览器直接去连接其他Internet站点取得网络信息时,需送出Request信号来得到回答,然后对方再把信息以bit方式传送回来。代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求, Request信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。而且,大部分代理服务器都具有缓冲的功能,就好象一个大的Cache,它有很大的存储空间,它不断将新取得数据储存到它本机的存储器上,如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传送给用户的浏览器,这样就能显著提高浏览速度和效率。
更重要的是:Proxy Server (代理服务器)是 Internet链路级网关所提供的一种重要的安全功能,它的工作主要在开放系统互联 (OSI) 模型的对话层。
二、代理服务器的分类
1、HTTP代理按匿名功能分类。
是否具有隐藏IP的功能。
非匿名代理:不具有匿名功能。
匿名代理。使用此种代理时,虽然被访问的网站不能知道你的IP地址,但仍然可以知道你在使用代理,有些侦测IP的网页也仍然可以查到你的IP。
高度匿名代理:使用此种代理时,被访问的网站不知道你的IP地址,也不知道你在使用代理进行访问。此种代理的隐藏IP地址的功能最强。
2、按请求信息的安全性分类
全匿名代理:不改变你的request fields(报文),使服务器端看来就像有个真正的客户浏览器在访问它。当然,你的真实IP是隐藏起来的。服务器的网管不会认为你使用了代理。
普通匿名代理:能隐藏你的真实IP,但会更改你的request fields,有可能会被认为使用了代理,但仅仅是可能,一般说来是没问题的。不过不要受它的名字的误导,其安全性可能比全匿名代理更高,有的代理会剥离你的部分信息(就好比防火墙的stealth mode),使服务器端探测不到你的操作系统版本和浏览器版本。
elite代理:匿名隐藏性更高,可隐藏系统及浏览器资料信息等。此种代理安全性特强。
透明代理(简单代理):透明代理的意思是客户端根本不需要知道有代理服务器的存在,它改编你的request fields(报文),并会传送真实IP。注意,加密的透明代理则是属于匿名代理,意思是不用设置使用代理了,例如Garden 2程序。
3、按代理服务器的用途分类
1)Http代理:代理客户机的http访问,主要代理浏览器访问网页,它的端口一般为80、8080、3128等。
2)SSL代理:支持最高128位加密强度的http代理,可以作为访问加密网站的代理。加密网站是指以https://开始的网站。ssl的标准端口为443。
3)HTTP CONNECT代理:允许用户建立TCP连接到任何端口的代理服务器,这种代理不仅可用于HTTP,还包括FTP、IRC、RM流服务等。
4)FTP代理:代理客户机上的ftp软件访问ftp服务器,其端口一般为21、2121。
5)POP3代理:代理客户机上的邮件软件用pop3方式收邮件,其端口一般为110。
6)Telnet代理:能够代理通信机的telnet,用于远程控制,入侵时经常使用。其端口一般为23。
7)Socks代理:是全能代理,就像有很多跳线的转接板,它只是简单地将一端的系统连接到另外一端。支持多种协议,包括http、ftp请求及其它类型的请求。它分socks 4 和socks 5两种类型,socks 4只支持TCP协议而socks 5支持TCP/UDP协议,还支持各种身份验证机制等协议。其标准端口为1080。
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和使用代理服务器上联众打游戏等等各种游戏应用软件当中。
8)TUNNEL代理:经HTTPTunnet程序转换的数据包封装成http请求(Request)来穿透防火墙,允许利用HTTP服务器做任何TCP可以做的事情,功能相当于Socks5。
9)文献代理:可以用来查询数据库的代理,通过这些代理,可以获得互联网的相关科研学术的数据库资源,例如查询Sciencedirect网站(简称SD)、Academic Press、IEEE,SPRINGER等数据库。
10)教育网代理:指学术教育机构局域网通过特定的代理服务器可使无出国权限或无访问某IP段权限的计算机访问相关资源。
11)跳板代理:应用于跳板程序,可以看作一种具有动态加密的特殊socks5代理,,也可直接用于PSD软件。其端口一般为1813。
12)Ssso代理:代理客户机上的ssso程序访问远程网站,具有SSL加密强度的超级代理,支持socks。
13)Flat代理:代理客户机上的flatsurfer程序访问远程网站,具有高强度加密数据流的特殊代理,支持socks,最大可设置三次级联,可以设置穿越代理。其端口一般为6700。
14)SoftE代理:代理客户机上的SoftEther程序访问远程网站,应用虚拟集线器HUB和虚拟网卡技术,具备***功能及多种认证方式的代理,符合https协议。
三、代理服务器的主要功能
代理服务器一般来讲,对于普通的网民的作用有以下几个(撇开一些高深的用处不谈,因为未必会用到):
1、连接Internet与Intranet 充当firewall(防火墙):因为所有内部网的用户通过代理服务器访问外界时,只映射为一个IP地址,所以外界不能直接访问到内部网;同时可以设置 IP地址过滤,限制内部网对外部的访问权限;另外,两个没有互联的内部网,也可以通过第三方的代理服务器进行互联来交换信息。
2、节省IP开销:如前面所讲,所有用户对外只占用一个IP,所以不必租用过多的IP地址,降低网络的维护成本。这样,局域局内没有与外网相连的众多机器就可以通过内网的一台代理服务器连接到外网,大大减少费用。当然也有它不利的一面,如许多网络黑客通过这种方法隐藏自己的真实IP地址,而逃过监视。
3、通过它来加快我们浏览某些网站的速度:有时候我们访问一些国外或者港台网站,速度慢得像蜗牛一样,但只要你正确的选用代理服务器,速度就可以得到提升,有时候这些速度的提升可是很明显的哦!本身带宽较小,通过带宽较大的proxy与目标主机连接。而且通常代理服务器都设置一个较大的硬盘缓冲区(可能高达几个GB或更大),当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户再访问相同的信息时,则直接由缓冲区中取出信息,传给用户,从而达到提高访问速度的目的。
4、通过它,我们可以访问到一些平时不能去的网站:不信你可以马上打开你的浏览器和输入“wwwgeocitiescom”这个网址。怎样?不用看着浏览器在这里空等了,并不是你的网络速度慢,也不是没有这个网站,而是你访问不到它(网络上还有很多这些类型的网站)。为什么访问不到?这个问题嘛说法有很多种,大部分都说是国内的网络被限制了访问,所以某些网站是不能去的。如果你在以往浏览过程中出现过以上的情况,那么看来你有必要尝试一下使用代理服务器了。至于如何可以访问到这些网站? 请您继续阅读本系列文章!
第一步、选择好提取数量,以及协议,和格式,点击生成api链接,就可以获取到链接了。
第二步、生成API链接,调用HTTP GET请求即可返回所需的IP结果
第三步、点击浏览器里的设置,选择局域网设置
第四步、勾选,代理服务器的,输入账号密码即可。
以CCProxy为例,代理服务器软件CCProxy使用方法如下:
先期准备
首先要保证每台机器都指定了一个固定的IP地址。
其次是找一个CCProxy的安装程序。
服务器的安装
运行下载后的Ccproxysetupexe就可以一步步进行安装,只是在最后一步选择语言时要选择ChineseGB即为中文简体。
安装完成后,桌面有一个CCProxy的绿色图标,双击即可启动CCProxy了。绿色的网格坐标将会出现**的曲线表示网络数据流量。
客户机的设置
1、对TCP/IP协议的属性进行设置。
方法:右击“网上邻居”,选择“属性”,双击网卡对应的“TCP/IP协议”,选择“DNS”标签。设置如下:选中“启用DNS”;“主机”中填入服务器名称;并在下面的“DNS服务器搜索顺序”中填入服务器的IP地址,本例为“19216801”,然后单击[填加];单击[确定]结束DNS设置;再次单击[确定],结束对网络属性的设置。这时需要重新启动计算机。
2、重新启动后,右击桌面上的IE图标,选择“属性”。在接下来的“Internet属性”对话框中进行如下设置:选中“连接”标签;单击“局域网设置” 按钮;选中“使用代理服务器”;单击“高级”;在“服务器类型”中分别填入:HTTP为19216801,端口为808;FTP为 19216801,端口为2121;Socks为19216801,端口为1080;然后单击[确定]完成对IE的设置。
上网浏览
完成了上述的操作后,将服务器连接到因特网上,再启动CCProxy,客户机就可以通过IE自由在网际之间穿梭了,想要停止代理服务只需单击[停止]按钮即可。
备注
1、客户机欲使用OICQ、RealPlayer、网络蚂蚁等软件还需要分别进行设置。
2、CCProxy还有包括Socks5和HTTP用户验证、上网时间管理功能、网站过滤功能、 缓存功能等等诸多的使用功能,必须在注册以后才可以使用。
我举个栗子,主要是介绍如何通过浏览器的HTTP代理设置的
360极速浏览器:
步骤一:
首先,我们需要登录Ipidea的网站,登陆账号后,在API获取洁面生成API链接,打开链接并将链接内的IP复制
步骤二:
打开360极速浏览器,然后在360极速浏览器菜单列表内,按照顺序打开:代理服务器 - 代理服务器设置
步骤三:
将步骤一复制的IP和端口号,粘贴至代理服务器列表内
步骤四:
在360极速浏览器的列表内,选择代理服务器,然后选择添加好的IP地址
步骤五:
打开百度/谷歌搜索引擎,搜索:IP,查看当前代理后的IP地址,如果显示的地区跟本身IP不一致,并且是你选择的提取地区时,说明切换已经成功了!
怎么编写网站的HTTP反向代理服务器在Nodejs上实现一个简单的HTTP代理程序还是非常简单的,本文章的例子的核心代码只有60多行,只要理解内置http模块的基本用法即可,具体请看下文。
接口设计与相关技术
使用httpcreateServer()创建的HTTP服务器,处理请求的函数格式一般为function(req,res){}(下文简称为requestHandler),其接收两个参数,分别为httpIncomingMessage和httpServerResponse对象,我们可以通过这两个对象来取得请求的所有信息并对它进行响应。
主流的NodejsWeb框架的中间件(比如connect)一般都有两种形式:
中间件不需要任何初始化参数,则其导出结果为一个requestHandler
中间件需要初始化参数,则其导出结果为中间件的初始化函数,执行该初始化函数时,传入一个options对象,执行后返回一个requestHandler
为了使代码更规范,在本文例子中,我们将反向代理程序设计成一个中间件的格式,并使用以上第二种接口形式:
//生成中间件
consthandler=reverseProxy({
//初始化参数,用于设置目标服务器列表
servers:["127001:3001","127001:3002","127001:3003"]
});
//可以直接在http模块中使用
constserver=httpcreateServer(handler);
//作为中间件在connect模块中使用
appuse(handler);
说明:
上面的代码中,reverseProxy是反向代理服务器中间件的初始化函数,它接受一个对象参数,servers是后端服务器地址列表,每个地址为IP地址:端口这样的格式
执行reverseProxy()后返回一个function(req,res){}这样的函数,用于处理HTTP请求,可作为httpcreateServer()和connect中间件的appuse()的处理函数
当接收到客户端请求时,按顺序循环从servers数组中取出一个服务器地址,将请求代理到这个地址的服务器上
服务器在接收到HTTP请求后,首先需要发起一个新的HTTP请求到要代理的目标服务器,可以使用httprequest()来发送请求:
constreq=httprequest(
{
hostname:"目标服务器地址",
port:"80",
path:"请求路径",
headers:{
"x-y-z":"请求头"
}
},
function(res){
//res为响应对象
consolelog(resstatusCode);
}
);
//如果有请求体需要发送,使用write()和end()
reqend();
要将客户端的请求体(Body部分,在POST、PUT这些请求时会有请求体)转发到另一个服务器上,可以使用Stream对象的pipe()方法,比如:
//req和res为客户端的请求和响应对象
//req2和res2为服务器发起的代理请求和响应对象
//将req收到的数据转发到req2
reqpipe(req2);
//将res2收到的数据转发到res
res2pipe(res);
说明:
req对象是一个ReadableStream(可读流),通过data事件来接收数据,当收到end事件时表示数据接收完毕
res对象是一个WritableStream(可写流),通过write()方法来输出数据,end()方法来结束输出。
以上就是小编对于怎么编写网站的HTTP反向代理服务器的解答。
服务器网站代理服务器写网站WINDOWS设置全局代理可以通过以下4个步骤操作来实现:
1、点击开始菜单,然后点击setting(设置);
2、接着,点击“网络和internet”;
3、在网络和internet中选择“代理”选项;
4、先关闭“自动检测”开关,然后打开手动设置代理的开关,并在 地址中输入代理 IP地址 在端口中填入 代理服务器端口号。当然你也可以排除本地地址不使用代理,然手动输入一些不需要使用代理的地址,设置完成后点击保存按钮。
自己搭建高质量亿级IP的HTTP/Socks5隧道代理
一、前言
在做爬虫、数据采集、账号搜索项目时,需要用到高质量代理IP。目前比较流行也是最常见的代理IP服务,大部分是通过api链接提取。通过不断的访问api接口,api服务器返回一个或多个可用代理IP,然后将代理IP应用于自己的程序或软件中。api服务器维护了一个可用IP池,并且不断在更新加入新的可用IP。客户端访问时,则返回最新可用IP。
API提取方式简单实现,但也有一定弊端,主要是客户端需要不断的访问api接口获取最新代理,需要一直循环。根据代理质量的不同,获取到的代理不一定全部可用,影响了爬虫的效率。这里推荐 酷鱼代理IP(https://kuyukuyucom),有动态代理和私密代理,速度和可用率都比较好。
那么,有没有不需要api的代理方式呢,那我们来看看隧道代理。
二、隧道代理是什么
隧道代理只需设置固定接口,云端自动切换不同IP,省去了客户端频繁获取的麻烦。并且通过隧道代理的多路负载技术,大大提高的代理速度和可用率。隧道代理没有一次提取多少个IP的概念,主要是通过对不同客户的并发请求数进行限制。一般可达到50-100次/秒的并发请求。
三、隧道代理架构
如上图,隧道代理工作步骤为:
代理使用者向隧道代理服务器发出请求。例如酷鱼隧道代理地址为:tunnelkuyukuyucom。
隧道代理服务器收到代理使用者请求后,会选择最优线路进行转发,在代理使用者和动态代理节点之间建立隧道连接。
动态代理服务器请求代理使用者指定的目标站。
动态代理服务器将目标站返回的结果,直接返回给代理使用者。
四、获取代理IP池
隧道代理有多个可用路径进行转发,采用多路复用、择优选择技术,提高代理成功率。经测试成功率可达99%以上。
代理服务器返回结果时没有经过隧道代理,而是直接返回给代理使用者。因为隧道代理仅起到建立隧道连接的作用,并不参与数据传输。保障了代理执行效率。
使用方便,需要频繁切换代理。
支持高并发,多客户端同时使用。
五、实现步骤
首先需要找到一个可持续供给的代理IP池,代理IP最好是同时支持HTTP(s)和Socks5协议的,这样我们的隧道代理也可以支持socks5。这里推荐酷鱼私密代理 https://kuyukuyucom/mains/secret ,可用率99%以上,速度快。
购买后在用户中心获取API提取链接,然后设置白名单和提取数量。
将获取到的代理写入Squid配置文件。/etc/squid/squidconf
重载配置文件,使用配置生效。
每隔1秒重复一次,并不断循环。
六、Squid使用方法
将squid 做为代理服务器
备份源文件 cp /etc/squid/squidconf /etc/squid/squidconfsource,用于脚本自动更新
在squid所在服务器运行脚本。
七、进一步优化
由于squid只支持http(s),不支持socks5协议,所有就算购买的代理池支持socks5,隧道代理也不支持。如需支持socks5,只需要使用其他软件替代squid。如果有这方面的需要可以联系酷鱼代理客服。
可以在隧道代理上使用iptables进行限制访问,达到白名单功能。
iptables还可以对单个客户端请求数量或流量限制,达到限流功能。
文章来源:网页链接
0条评论