解析:
(1) 代理服务原理
代理服务器有很多种,大体来说有,ftp,socks代理三种,其中又分透明代理和不透明代理。其中透明代理一般是网关,是硬件。所以这里讨论不透明代理。
当机器通过代理服务器上网时。通讯是分两次的,先是机器和代理服务器通讯,再是代理服务器和目的地址通讯。
机器和代理服务器通讯时,目的IP是代理服务器的IP。代理服务器和目的地址通讯时,源IP是代理服务器的IP,当外部的数据也是一样的,在内网中,出现的IP数据,全是内网和代理服务器的IP。因此,从IP包头是看不出任何与外面通讯的信息的。只有从数据中才能看到。
例如,用代理上网。
过程是
机器和代理服务器建立TCP连接。
机器发出GET命令。这时GET命令中包含URL或IP地址,明文。
代理服务器将其中的URL转换为IP地址,可能会有DNS。将源数据包中的数据拷贝下来。去掉URL,重新组包,再发出去。
我们需要解析第一个GET包。
现在来看几种代理方式。
(get)
(connect)
ftp (user user@host:port)
ftp (user user@host port)
ftp (open host)
ftp (site host)
ftp (site user@host)
socks5
socks4
这些代理方式都有一个特点。就是在连接时,都会先和代理服务器连接,发出请求,一般为 mand url,mand就是get,connect,user 等。和ftp都一样,可以通过关键字来识别。而且url是明文。Socks有些特别。它不是明文的,而是十六进制数据。要获得IP地址,还要经过转换。
(2) 目前的代理服务技术
代理服务技术是在一台PC机上安装一套代理软件,主要用于用户对Inter资源的访问。
ICS即Inter连接共享(Inter Connection Sharing)的英文简称,是Windows系统针对家庭网络或小型的Intra网络提供的一种Inter连接共享服务。它实际上相当于一种网络地址转换器,所谓网络地址转换器就是当数据包向前传递的过程中,可以转换数据包中的IP地址和TCP/UCP端口等地址信息。有了网络地址转换器,家庭网络或小型的办公网络中的电脑就可以使用私有地址,并且通过网络地址转换器将私有地址转换成ISP分配的单一的公用IP地址从而实现对Inter的连接。ICS方式也称之为Inter转换连接。
软件:Wingate,、Winproxy
NAT即网络地址转换(Neork Address Translator),从广义上讲,ICS也是使用了一种NAT技术,不过我们这里讨论的NAT是指将运行Windows 2000 Server的计算机作为IP路由器,通过它在局域网和Inter主机间转发数据包从而实现Inter的共享。NAT方式也称之为Inter的路由连接。网络地址转换NAT通过将专用内部地址转换为公共外部地址,对外隐藏了内部管理的IP地址。这样,通过在内部使用非注册的IP地址,并将它们转换为一小部分外部注册的IP 地址,从而减少了IP 地址注册的费用。同时,这也隐藏了内部网络结构,从而降低了内部网络受到攻击的风险。
软件:WinRoute、Sygate
(3) 代理数据变代
非透明代理:
上网主机向代理提交TCP连接请求:源ip(上网主机)目标ip(代理服务器)
***********: 45 00 01 9E 64 CE 40 00 80 06 17 C0 C0 A8 FD 91 E...d.@.........
***********: C0 A8 FD E8 12 47 04 38 FB 32 8B 56 7E 55 57 EA .....G.8.2.V~UW.
***********: 50 18 44 70 1B EC 00 00 47 45 54 20 68 74 74 70 P.Dp....GET
***********: 3A 2F 2F 77 77 77 2E 63 63 74 76 2E 63 6F 6D 2E haozs.
***********: 63 6E 2F 20 48 54 54 50 2F 31 2E 30 0D 0A 41 63 / HTTP/1.0..Ac
***********: 63 65 70 74 3A 20 69 6D 61 67 65 2F 67 69 66 2C cept: image/gif,
***********: 20 69 6D 61 67 65 2F 78 2D 78 62 69 74 6D 61 70 image/x-xbitmap
***********: 2C 20 69 6D 61 67 65 2F 6A 70 65 67 2C 20 69 6D , image/jpeg, im
***********: 61 67 65 2F 70 6A 70 65 67 2C 20 61 70 70 6C 69 age/pjpeg, appli
***********: 63 61 74 69 6F 6E 2F 76 6E 64 2E 6D 73 2D 65 78 cation/vnd.ms-ex
000000a0: 63 65 6C 2C 20 61 70 70 6C 69 63 61 74 69 6F 6E cel, application
000000b0: 2F 76 6E 64 2E 6D 73 2D 70 6F 77 65 72 70 6F 69 /vnd.ms-powerpoi
000000c0: 6E 74 2C 20 61 70 70 6C 69 63 61 74 69 6F 6E 2F nt, application/
000000d0: 6D 73 77 6F 72 64 2C 20 61 70 70 6C 69 63 61 74 msword, applicat
000000e0: 69 6F 6E 2F 78 2D 73 68 6F 63 6B 77 61 76 65 2D ion/x-shockwave-
000000f0: 66 6C 61 73 68 2C 20 2A 2F 2A 0D 0A 41 63 63 65 flash, */*..Acce
***********: 70 74 2D 4C 61 6E 67 75 61 67 65 3A 20 7A 68 2D pt-Language: zh-
***********: 63 6E 0D 0A 55 73 65 72 2D 41 67 65 6E 74 3A 20 ..User-Agent:
***********: 4D 6F 7A 69 6C 6C 61 2F 34 2E 30 20 28 63 6F 6D Mozilla/4.0 (
***********: 70 61 74 69 62 6C 65 3B 20 4D 53 49 45 20 36 2E patibleMSIE 6.
***********: 30 3B 20 57 69 6E 64 6F 77 73 20 4E 54 20 35 2E 0Windows NT 5.
***********: 32 3B 20 2E 4E 45 54 20 43 4C 52 20 31 2E 31 2E 2.NET CLR 1.1.
***********: 34 33 32 32 29 0D 0A 48 6F 73 74 3A 20 77 77 77 4322)..Host:
***********: 2E 63 63 74 76 2E 63 6F 6D 2E 63 6E 0D 0A 50 72 .haozs.ne..Pr
***********: 6F 78 79 2D 43 6F 6E 6E 65 63 74 69 6F 6E 3A 20 oxy-Connection:
***********: 4B 65 65 70 2D 41 6C 69 76 65 0D 0A 0D 0A FD 00 Keep-Alive......
代理服务器转换后的数据:源IP(代理服务器) 目IP(网站IP)
***********: 45 00 01 88 5D 4E 40 00 80 06 19 55 C0 A8 FD E8 E...]N@....U....
***********: CA 6C F9 CE 06 AC 00 50 7E 57 F3 C7 E1 41 2F 21 .l.....P~W...A/!
***********: 50 18 44 70 F9 DF 00 00 47 45 54 20 2F 20 48 54 P.Dp....GET / HT
***********: 54 50 2F 31 2E 30 0D 0A 41 63 63 65 70 74 3A 20 TP/1.0..Accept:
***********: 69 6D 61 67 65 2F 67 69 66 2C 20 69 6D 61 67 65 image/gif, image
***********: 2F 78 2D 78 62 69 74 6D 61 70 2C 20 69 6D 61 67 /x-xbitmap, imag
***********: 65 2F 6A 70 65 67 2C 20 69 6D 61 67 65 2F 70 6A e/jpeg, image/pj
***********: 70 65 67 2C 20 61 70 70 6C 69 63 61 74 69 6F 6E peg, application
***********: 2F 76 6E 64 2E 6D 73 2D 65 78 63 65 6C 2C 20 61 /vnd.ms-excel, a
***********: 70 70 6C 69 63 61 74 69 6F 6E 2F 76 6E 64 2E 6D pplication/vnd.m
000000a0: 73 2D 70 6F 77 65 72 70 6F 69 6E 74 2C 20 61 70 s-powerpoint, ap
000000b0: 70 6C 69 63 61 74 69 6F 6E 2F 6D 73 77 6F 72 64 plication/msword
000000c0: 2C 20 61 70 70 6C 69 63 61 74 69 6F 6E 2F 78 2D , application/x-
000000d0: 73 68 6F 63 6B 77 61 76 65 2D 66 6C 61 73 68 2C shockwave-flash,
000000e0: 20 2A 2F 2A 0D 0A 41 63 63 65 70 74 2D 4C 61 6E */*..Accept-Lan
000000f0: 67 75 61 67 65 3A 20 7A 68 2D 63 6E 0D 0A 55 73 guage: zh-..Us
***********: 65 72 2D 41 67 65 6E 74 3A 20 4D 6F 7A 69 6C 6C er-Agent: Mozill
***********: 61 2F 34 2E 30 20 28 63 6F 6D 70 61 74 69 62 6C a/4.0 (patibl
***********: 65 3B 20 4D 53 49 45 20 36 2E 30 3B 20 57 69 6E eMSIE 6.0Win
***********: 64 6F 77 73 20 4E 54 20 35 2E 32 3B 20 2E 4E 45 dows NT 5.2.NE
***********: 54 20 43 4C 52 20 31 2E 31 2E 34 33 32 32 29 0D T CLR 1.1.4322).
***********: 0A 48 6F 73 74 3A 20 77 77 77 2E 63 63 74 76 2E .Host: cctv.
***********: 63 6F 6D 2E 63 6E 0D 0A 50 72 6F 78 79 2D 43 6F ..Proxy-Co
***********: 6E 6E 65 63 74 69 6F 6E 3A 20 4B 65 65 70 2D 41 nnection: Keep-A
***********: 6C 69 76 65 0D 0A 0D 0A FD 00 00 00 00 00 00 00 live............
通过非透明代理上网,上网主机向代理提交连接请求。在请求包里,包含了真正目标的URL,通过代理转交。
ftp代理
代理服务器是明文
..]ZY...]ZI@..E..@.J@...yr.........i.I6u[.....P....l..USER user@202.204.8.10...
代理
代理是明文
..]ZY...]ZI@..E..R..@...y..........J.8.*.n.YJ@P...Z...GET haozs/ HTTP/1.0..Accept: */*..Accept-Language: zh-..Accept-Encoding: gzip, deflate..User-Agent: Mozilla/4.0 (patibleMSIE 5.01Windows NT 5.0)..Host: mp3.yzu.edu..Proxy-Connection: Keep-Alive..Pragma: no-cache..Cookie: ASPSESSIONIDQQCDACCS=CLCLPECCDCEKIGEOKFAFNDAG......-.....0......
socks5代理
socks5代理都不是明文,是数据。
202.204.8.10:21
CA CC 08 0A 00 15
如果使用的是域名,就是明文
..]ZY...]ZI@..E..>..@...p.............N.f7%p:.P...........vod.sjtu.edu.....
qq 代理
当qq上线的时候会和腾迅的服务器联系
..]ZY...]ZI@..E....-@...m*...........8]...3.j.P....6..CONNECT 218.18.95.165:443 HTTP/1.1..Accept: */*..Content-Type: text/..Proxy-Connection: Keep-Alive..Content-length: 0................
qq socks5代理
当qq使用socks5代理的时候,不是明文,是数据
CA 60 AA A5
202.96.170.165:8000
(4) VLAN工作原理的研究
VLAN(Virtual Local Area Neork)就是虚拟局域网的意思。VLAN可以不考虑用户的物理位置,而根据功能、应用等因素将用户从逻辑上划分为一个个功能相对独立的工作组,每个用户主机都连接在一个支持VLAN的交换机端口上并属于一个VLAN。同一个VLAN中的成员都共享广播,形成一个广播域,而不同VLAN之间广播信息是相互隔离的。这样,将整个网络分割成多个不同的广播域(VLAN)。一般来说,如果一个VLAN里面的工作站发送一个广播,那么这个VLAN里面所有的工作站都接收到这个广播,但是交换机不会将广播发送至其他VLAN上的任何一个端口。如果要将广播发送到其它的VLAN端口,就要用到三层交换机。
代理服务器有很多种,大体分为三类:HTTP、FTP、SOCKS,其中又分为透明代理和不透明代理,透明代理一般是网关,为硬件过程:
(1)客户端先和代理服务器通讯,建立TCP连接,目的IP是代理服务器的IP
(2)客户端发出GET命令,GET命令中包含URL或IP地址、明文
(3)代理服务器将其中的URL转换为IP地址,可能会有DNS,将源数据包中的数据拷贝下来,去掉URL,重新组包再发出去
(4)代理服务器和真实服务器通讯,源IP是代理服务器的IP
以上就是代理的实现原理,在我们日常生活中只有在学习IT才会了解哦,我也是在黑马程序员学习之后才了解的。
[toc]
基于原文截取修改:
原文链接: 让代理服务器支持HTTPS很难吗?
我们开展稳定高匿名HTTP代理业务以来,我听到客户咨询最多的问题之一就是“你们的代理支持HTTPS协议吗?”。我觉得很多人对HTTPS代理存在理解上的误区,所以我写了这篇文章。目的就是想说明“实现支持HTTPS的代理一点都不难!”。
说到HTTPS代理很多人瞬间就会联想到HTTPS的各种证书和各种加密,觉得很高端很复杂的样子。其实不然,代理服务器不需要配置证书、也不需要处理任何加密。因为HTTPS代理是通过Web隧道(Web tunnel)工作的。
Web隧道允许用户通过HTTP连接发送非HTTP流量(例如FTP,Telnet,SMTP),这就使得那些使用非HTTP协议的应用程序可以通过HTTP代理工作了。你现在应该就明白了为什么QQ可用设置使用HTTP代理工作。Web隧道这么强大,但它并不复杂。
Web隧道是用HTTP协议的CONNECT方法建立起来的。CONNECT方法不是HTTP/1.1核心规范的一部分,但确是一种得到广泛应用的扩展。客户端通过CONNECT方法请求代理服务器创建一条到达任意目的服务器和端口的TCP链接,代理服务器仅对客户端和服务器之间的后续数据进行盲转发(只是转发,不关心、也不懂发送的内容是什么)。
1) 客户端通过HTTP协议发送一条CONNECT方法的请求给代理服务器,告知代理服务器需要连接的主机和端口。
例如:
在本例中客户端通过CONNECT方法请求代理服务器打开一条到 www.alipay.com 主机443端口的TCP链接。
2) 代理服务器一旦建立了和目标主机(上例中的 www.alipay.com:443 )TCP连接,就会回送一条HTTP 200 Connection Established应答给客户端。
例如:
3) 此时隧道就建立起来了。客户端通过该HTTP隧道发送的所有数据都会被代理服务器(通过之前建立起来的与目标主机的TCP连接)原封不动的转发给目标服务器。目标服务器发送的所有数据也会被代理服务器原封不动的转发给客户端。注意:是原封不动的转发,代理服务器并不需要知道内容的含义,也不会尝试去对内容进行解析。
PS:上面这张插图是我引用《HTTP权威指南》一书的,做了修改。
这下你应该明白了Web隧道的工作原理。所以对代理服务器来说只要其支持Web隧道就支持HTTPS协议(和其它非HTTP协议),与证书、加密没有任何直接的关系。从上面的过程可以看出,实现Web隧道并不难,只要代理服务器能够正确处理CONNECT请求,然后对数据进行盲转发即可。从难度上看这比标准的HTTP协议代理还要简单(标准HTTP协议代理需要对客户端和服务端双方的HTTP报文先进行解析,修改后再进行转发)。
我能说
哈哈,没写,你来
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)