代理服务器工作原理

来源:互联网 发布:民国知乎 编辑:程序博客网 时间:2024/04/30 14:04
 (1) 代理服务原理

代理服务器有很多种,大体来说有http,ftp,socks代理三种,其中又分透明代理和不透明代理。其中透明代理一般是网关,是硬件。所以这里讨论不透明代理。

当机器通过代理服务器上网时。通讯是分两次的,先是机器和代理服务器通讯,再是代理服务器和目的地址通讯。

机器和代理服务器通讯时,目的IP是代理服务器的IP。代理服务器和目的地址通讯时,源IP是代理服务器的IP,当外部的数据也是一样的,在内网中,出现的IP数据,全是内网和代理服务器的IP。因此,从IP包头是看不出任何与外面通讯的信息的。只有从数据中才能看到。

例如,用http代理上网。

过程是

机器和代理服务器建立TCP连接。
机器发出GET命令。这时GET命令中包含URL或IP地址,明文。
代理服务器将其中的URL转换为IP地址,可能会有DNS。将源数据包中的数据拷贝下来。去掉URL,重新组包,再发出去。
我们需要解析第一个GET包。
现在来看几种代理方式。
http (get)
http (connect)
ftp (user user@host:port)
ftp (user user@host port)
ftp (open host)
ftp (site host)
ftp (site user@host)
socks5
socks4
这些代理方式都有一个特点。就是在连接时,都会先和代理服务器连接,发出请求,一般为 command url,command就是get,connect,user 等。http和ftp都一样,可以通过关键字来识别。而且url是明文。Socks有些特别。它不是明文的,而是十六进制数据。要获得IP地址,还要经过转换。

(2) 目前的代理服务技术

代理服务技术是在一台PC机上安装一套代理软件,主要用于用户对Internet资源的访问。

ICS即Internet连接共享(Internet Connection Sharing)的英文简称,是Windows系统针对家庭网络或小型的Intranet网络提供的一种Internet连接共享服务。它实际上相当于一种网络地址转换器,所谓网络地址转换器就是当数据包向前传递的过程中,可以转换数据包中的IP地址和TCP/UCP端口等地址信息。有了网络地址转换器,家庭网络或小型的办公网络中的电脑就可以使用私有地址,并且通过网络地址转换器将私有地址转换成ISP分配的单一的公用IP地址从而实现对Internet的连接。ICS方式也称之为Internet转换连接。
软件:Wingate,、Winproxy
NAT即网络地址转换(Network Address Translator),从广义上讲,ICS也是使用了一种NAT技术,不过我们这里讨论的NAT是指将运行Windows 2000 Server的计算机作为IP路由器,通过它在局域网和Internet主机间转发数据包从而实现Internet的共享。NAT方式也称之为Internet的路由连接。网络地址转换NAT通过将专用内部地址转换为公共外部地址,对外隐藏了内部管理的IP地址。这样,通过在内部使用非注册的IP地址,并将它们转换为一小部分外部注册的IP 地址,从而减少了IP 地址注册的费用。同时,这也隐藏了内部网络结构,从而降低了内部网络受到攻击的风险。
软件:WinRoute、Sygate

(3) 代理数据变代

非透明代理:

上网主机向代理提交TCP连接请求:源ip(上网主机)目标ip(代理服务器)
00000000: 45 00 01 9E 64 CE 40 00 80 06 17 C0 C0 A8 FD 91 E...d.@.........
00000010: C0 A8 FD E8 12 47 04 38 FB 32 8B 56 7E 55 57 EA .....G.8.2.V~UW.
00000020: 50 18 44 70 1B EC 00 00 47 45 54 20 68 74 74 70 P.Dp....GET http
00000030: 3A 2F 2F 77 77 77 2E 63 63 74 76 2E 63 6F 6D 2E ://http://www.haozs.net./
00000040: 63 6E 2F 20 48 54 54 50 2F 31 2E 30 0D 0A 41 63 cn/ HTTP/1.0..Ac
00000050: 63 65 70 74 3A 20 69 6D 61 67 65 2F 67 69 66 2C cept: image/gif,
00000060: 20 69 6D 61 67 65 2F 78 2D 78 62 69 74 6D 61 70 image/x-xbitmap
00000070: 2C 20 69 6D 61 67 65 2F 6A 70 65 67 2C 20 69 6D , image/jpeg, im
00000080: 61 67 65 2F 70 6A 70 65 67 2C 20 61 70 70 6C 69 age/pjpeg, appli
00000090: 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
00000100: 70 74 2D 4C 61 6E 67 75 61 67 65 3A 20 7A 68 2D pt-Language: zh-
00000110: 63 6E 0D 0A 55 73 65 72 2D 41 67 65 6E 74 3A 20 cn..User-Agent:
00000120: 4D 6F 7A 69 6C 6C 61 2F 34 2E 30 20 28 63 6F 6D Mozilla/4.0 (com
00000130: 70 61 74 69 62 6C 65 3B 20 4D 53 49 45 20 36 2E patible; MSIE 6.
00000140: 30 3B 20 57 69 6E 64 6F 77 73 20 4E 54 20 35 2E 0; Windows NT 5.
00000150: 32 3B 20 2E 4E 45 54 20 43 4C 52 20 31 2E 31 2E 2; .NET CLR 1.1.
00000160: 34 33 32 32 29 0D 0A 48 6F 73 74 3A 20 77 77 77 4322)..Host: www
00000170: 2E 63 63 74 76 2E 63 6F 6D 2E 63 6E 0D 0A 50 72 .haozs.ne..Pr
00000180: 6F 78 79 2D 43 6F 6E 6E 65 63 74 69 6F 6E 3A 20 oxy-Connection:
00000190: 4B 65 65 70 2D 41 6C 69 76 65 0D 0A 0D 0A FD 00 Keep-Alive......

代理服务器转换后的数据:源IP(代理服务器) 目IP(网站IP)
00000000: 45 00 01 88 5D 4E 40 00 80 06 19 55 C0 A8 FD E8 E...]N@....U....
00000010: CA 6C F9 CE 06 AC 00 50 7E 57 F3 C7 E1 41 2F 21 .l.....P~W...A/!
00000020: 50 18 44 70 F9 DF 00 00 47 45 54 20 2F 20 48 54 P.Dp....GET / HT
00000030: 54 50 2F 31 2E 30 0D 0A 41 63 63 65 70 74 3A 20 TP/1.0..Accept:
00000040: 69 6D 61 67 65 2F 67 69 66 2C 20 69 6D 61 67 65 image/gif, image
00000050: 2F 78 2D 78 62 69 74 6D 61 70 2C 20 69 6D 61 67 /x-xbitmap, imag
00000060: 65 2F 6A 70 65 67 2C 20 69 6D 61 67 65 2F 70 6A e/jpeg, image/pj
00000070: 70 65 67 2C 20 61 70 70 6C 69 63 61 74 69 6F 6E peg, application
00000080: 2F 76 6E 64 2E 6D 73 2D 65 78 63 65 6C 2C 20 61 /vnd.ms-excel, a
00000090: 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-cn..Us
00000100: 65 72 2D 41 67 65 6E 74 3A 20 4D 6F 7A 69 6C 6C er-Agent: Mozill
00000110: 61 2F 34 2E 30 20 28 63 6F 6D 70 61 74 69 62 6C a/4.0 (compatibl
00000120: 65 3B 20 4D 53 49 45 20 36 2E 30 3B 20 57 69 6E e; MSIE 6.0; Win
00000130: 64 6F 77 73 20 4E 54 20 35 2E 32 3B 20 2E 4E 45 dows NT 5.2; .NE
00000140: 54 20 43 4C 52 20 31 2E 31 2E 34 33 32 32 29 0D T CLR 1.1.4322).
00000150: 0A 48 6F 73 74 3A 20 77 77 77 2E 63 63 74 76 2E .Host: cctv.
00000160: 63 6F 6D 2E 63 6E 0D 0A 50 72 6F 78 79 2D 43 6F com.cn..Proxy-Co
00000170: 6E 6E 65 63 74 69 6F 6E 3A 20 4B 65 65 70 2D 41 nnection: Keep-A
00000180: 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...

http代理

http代理是明文
..]ZY...]ZI@..E..R..@...y..........J.8.*.n.YJ@P...Z...GET http://www.haozs.net/ HTTP/1.0..Accept: */*..Accept-Language: zh-cn..Accept-Encoding: gzip, deflate..User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)..Host: mp3.yzu.edu.cn..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.cn.....
qq http代理
当qq上线的时候会和腾迅的服务器联系
..]ZY...]ZI@..E....-@...m*...........8]...3.j.P....6..CONNECT 218.18.95.165:443 HTTP/1.1..Accept: */*..Content-Type: text/html..Proxy-Connection: Keep-Alive..Content-length: 0................

qq socks5代理

当qq使用socks5代理的时候,不是明文,是数据
CA 60 AA A5
202.96.170.165:8000