精华内容
下载资源
问答
  • 代理服务器

    千次阅读 2016-11-06 12:00:24
    什么是代理服务器  Web代理(proxy)服务器是网络的中间实体。 代理位于Web客户端和Web服务器之间,扮演“中间人”的角色。  HTTP的代理服务器即是Web服务器又是Web客户端。  Fiddler...

    什么是代理服务器

      Web代理(proxy)服务器是网络的中间实体。 代理位于Web客户端和Web服务器之间,扮演“中间人”的角色。

      HTTP的代理服务器即是Web服务器又是Web客户端。



      Fiddler就是个典型的代理

      Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1, 端口:8888. 当Fiddler退出的时候它会自动注销代理,这样就不会影响别的程序。



      代理的作用一, 翻墙

      很多人都喜欢用Facebook, 看youTube。但是我们在天朝,天朝有The Great of Wall(长城防火墙),屏蔽了这些好网站。 怎么办? 通过代理来跳墙,就可以访问了。

      自己去寻找代理服务器很麻烦, 一般都是用翻墙软件来自动发现代理服务器的。



      代理的作用二, 匿名访问

      经常听新闻,说”某某某“在网络上发布帖子,被跨省追缉了。 假如他使用匿名的代理服务器,就不容易暴露自己的身份了。

      http代理服务器的匿名性是指: HTTP代理服务器通过删除HTTP报文中的身份特性(比如客户端的IP地址, 或cookie,或URI的会话ID), 从而对远端服务器隐藏原始用户的IP地址以及其他细节。 同时HTTP代理服务器上也不会记录原始用户访问记录的log(否则也会被查到)。

      代理的作用三, 通过代理上网

      比如局域网不能上网, 只能通过局域网内的一台代理服务器上网。

      代理的作用四, 通过代理缓存,加快上网速度

      大部分代理服务器都具有缓存的功能,就好像一个大的cache, 它有很大的存储空间,它不断将新取得数据存储到它本地的存储器上, 如果浏览器所请求的数据在它本机的存储器上已经存在而且是最新的,那么它就不重新从Web服务器取数据,而直接将存储器上的数据传给用户的浏览器,这样就能显著提高浏览速度。

      代理的作用五:儿童过滤器

      很多教育机构, 会利用过滤器代理来阻止学生访问成人内容。



      IE代理设置:手动设置代理

      IE浏览器可以手动设置代理, 很简单,指定一个IP地址和端口就可以了。 如下图。

      工具 -> Internet选项 -> 连接 -> 局域网设置 (快捷键)

      假如代理服务器的IP地址改变了,或者端口号改变了。 难道要几百个客户端的浏览器去修改浏览器设置? Impossable 这太难维护了。 下面还有一种更高级点的方法。

      IE代理设置:使用自动配置脚本(PAC)

      手动配置代理很简单,但是不灵活。 只能指定一个代理服务器,而且不支持故障转移。

      在大公司里一般都使用PAC文件来配置。只需要指定PAC文件的URL就可以了, 如图:

      PAC(Proxy Auto Config)文件是一个小型的JavaScript程序的文本文件,后缀为.dat。

      当浏览器访问网络的时候,会根据PAC文件中的JavaScript函数来选择恰当的代理服务器。

      sample_pac.dat文件的内容

    function FindProxyForURL(url, host) {     if (url.substring(0, 5) == "http:") {         // 应该使用指定的代理
            return "PROXY proxy:80";     }     else if (url.substring(0, 4) == "ftp:") {         return "PROXY fproxy:80";      }     else if (url.substring(0, 7) == "gopher:") {         return "PROXY gproxy";     }     else if (url.substring(0,
     6) == "https:") {         return "PROXY secproxy:8080";     }     else {         // 直连,不经过任何代理
            return "DIRECT";     } }

      IE代理设置:自动探测设置(WPAD)

      浏览器只要选中“自动检测设置”, 就可以使用WPAD协议, WPAD会自动找到PAC文件的URL。 WPAD会使用一系列的资源发现技术(DHCP,DNS等)去寻找PAC文件。

      代理认证,和407状态码

      代理服务器也可以需要权限认证, HTTP定义了一种名为代理认证(Proxy authentication)的机制。 这种机制可以阻止对内容的请求。

      当浏览器访问需要认证的代理时, 代理服务器会返回407 Authorization Required,告诉浏览器输入用户名和密码。

      代理认证跟HTTP基本认证是一样的机制, 如需了解代理认证的机制,请看[HTTP协议基本认证]

      使用代理服务器的安全问题

      代理服务器和抓包工具(比如Fiddler)都能看到http request中的数据。 如果我们发送的request中有敏感数据,比如用户名,密码,信用卡号码。这些信息都会被代理服务器看到。所以非常危险。 所以我们一般都是用HTTPS来加密Http request. 这样代理服务器就看不到里面的数据了。

      如何搭建代理服务器

      可以使用CCproxy, 和Squid 来搭建代理服务器。

    展开全文
  • 代理服务

    千次阅读 2010-03-31 23:25:00
    代理服务(1) 代理服务原理代理服务器有很多种,大体来说有http,ftp,socks代理三种,其中又分透明代理和不透明代理。其中透明代理一般是网关,是硬件。所以这里讨论不透明代理。 当机器通过代理服务器上网时。通讯...

    代理服务
    (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 ://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

    (4) VLAN工作原理的研究
    VLAN(Virtual Local Area Network)就是虚拟局域网的意思。VLAN可以不考虑用户的物理位置,而根据功能、应用等因素将用户从逻辑上划分为一个个功能相对独立的工作组,每个用户主机都连接在一个支持VLAN的交换机端口上并属于一个VLAN。同一个VLAN中的成员都共享广播,形成一个广播域,而不同VLAN之间广播信息是相互隔离的。这样,将整个网络分割成多个不同的广播域(VLAN)。一般来说,如果一个VLAN里面的工作站发送一个广播,那么这个VLAN里面所有的工作站都接收到这个广播,但是交换机不会将广播发送至其他VLAN上的任何一个端口。如果要将广播发送到其它的VLAN端口,就要用到三层交换机。
    一、socks4/socks5代理
    SOCKS 5协议详解   

      笔者在实际学习中,由于在有些软件用到了socks5(如oicq,icq等),对其原理不
    甚了解,相信很多朋友对其也不是很了解,于是仔细研读了一下rfc1928,觉得有必要
    译出来供大家参考。

    1.介绍:

      防火墙的使用,有效的隔离了机构的内部网络和外部网络,这种类型的Internet
    架构变得越来越流行。这些防火墙系统大都充当着网络之间的应用层网关的角色,通
    常提供经过控制的Telnet,FTP,和SMTP访问。为了推动全球信息的交流,更多的新的应
    用层协议的推出。这就有必要提供一个总的架构使这些协议能够更明显和更安全的穿
    过防火墙。也就有必要在实际上为它们穿过防火墙提供一个更强的认证机制。这种需
    要源于客户机-服务器联系在不同组织网络之间的实现,而这种联系需要被控制和是很
    大程度上被认证的。
      该协议被描述为用来提供在TCP和UDP域下为客户机-服务器应用程序便利和安全的
    穿过防火墙的一个架构。该协议在概念上被描述为一个介于应用层和传输层之间的"隔
    离层",但是这类服务并不提供网络层网关服务,如ICMP报文的传输。

    2.现状:

      SOCKS 4为基于TCP的客户机-服务器应用程序提供了一种不安全的穿越防火墙的机
    制,包括TELNET,FTP和当前最流行的信息发现协议如HTTP,WAIS和GOPHER.
      新协议为了包括UDP扩展了SOCKS 4,为了包括对总体上更强的认证机制的支持扩
    展了协议架构,为了包括域名和IPv6地址的支持扩展了地址集。
      SOCKS协议执行最具代表性的是包括了在SOCKS库中利用适当的封装程序来对基于
    TCP的客户程序进行重编译和重链结。

    注意:
      除非特别提及,封装在包格式中的十进制数表示的是通讯域的长度(用八位组
    octect表示)。一个给定的八位组必须具有指定的值,格式X'hh'被用来表示在该域中
    单个八位组的值。当单词"变量Variable"被使用时,它指出了通讯域拥有一个可变长
    度,这个可变长度要么由一个联合的(一个或两个八位组)长度域定义,要么由一个数
    据类型域所定义。

    3.基于TCP客户机的程序

      当一台基于TCP的客户机希望和目标主机建立连接时,而这台目标主机只有经过防
    火墙才能到达(这种情况?一直持续到?它被执行时),它就必须在SOCKS服务器端的适
    当的SOCKS端口打开一个TCP连结。SOCKS服务按常例来说定位于TCP端口1080。如果连
    接请求成功,客户机为即将使用的认证方式进行一种协商,对所选的方式进行认证,
    然后发送一个转发请求。SOCKS服务器对该请求进行评估,并且决定是否建立所请求转
    发的连接。
      客户机连接到服务器,发送一个版本标识/方法选择报文:

      +----+----------+----------+
      |VER | NMETHODS | METHODS |
      +----+----------+----------+
      | 1 |   1  | 1 to 255 |
      +----+----------+----------+

      VER(版本)在这个协议版本中被设置为X'05'。NMETHODS(方法选择)中包含在
    METHODS(方法)中出现的方法标识八位组的数目。
      服务器从METHODS给出的方法中选出一种,发送一个METHOD selection(方法选择
    )报文:

      +----+--------+
      |VER | METHOD |
      +----+--------+
      | 1 |  1  |
      +----+--------+

      如果所选择的METHOD的值是X'FF',则客户机所列出的方法是没有可以被接受的,
    客户机就必须关闭连接。

    当前被定义的METHOD的值有:
      >> X'00' 无验证需求
      >> X'01' 通用安全服务应用程序接口(GSSAPI)
      >> X'02' 用户名/密码(USERNAME/PASSWORD)
      >> X'03' 至 X'7F' IANA 分配(IANA ASSIGNED)
      >> X'80' 至 X'FE' 私人方法保留(RESERVED FOR PRIVATE METHODS)
      >> X'FF' 无可接受方法(NO ACCEPTABLE METHODS)
    ***IANA是负责全球INTERNET上的IP地址进行编号分配的机构(译者著)***
      于是客户机和服务器进入方法细节的子商议。方法选择子商议另外描述于独立的
    文档中。
      欲得到该协议新的METHOD支持的开发者可以和IANA联系以求得到METHOD号。已分
    配号码的文档需要参考METHOD号码的当前列表和它们的通讯协议。
      如果想顺利的执行则必须支持GSSAPI和支持用户名/密码(USERNAME/PASSWORD)认
    证方法。

    4.需求

      一旦方法选择子商议结束,客户机就发送请求细节。如果商议方法包括了完整性
    检查的目的和/或机密性封装,则请求必然被封在方法选择的封装中。

    SOCKS请求如下表所示:

      +----+-----+-------+------+----------+----------+
      |VER | CMD | RSV | ATYP | DST.ADDR | DST.PORT |
      +----+-----+-------+------+----------+----------+
      | 1 |  1 | X'00' |  1 | Variable |   2  |
      +----+-----+-------+------+----------+----------+

    其中:
    o VER protocol version:X'05'
    o CMD
     o CONNECT X'01'
     o BIND X'02'
     o UDP ASSOCIATE X'03'
    o RSV RESERVED
    o ATYP address type of following address
     o IP V4 address: X'01'
     o DOMAINNAME: X'03'
     o IP V6 address: X'04'
    o DST.ADDR desired destination address
    o DST.PORT desired destination port in network octet order

    5.地址

      在地址域(DST.ADDR,BND.ADDR)中,ATYP域详细说明了包含在该域内部的地址类型

        o X'01'

      该地址是IPv4地址,长4个八位组。
        o X'03'

      该地址包含一个完全的域名。第一个八位组包含了后面名称的八位组的数目,没
    有中止的空八位组。
        o X'04'

      该地址是IPv6地址,长16个八位组。

    6.回应

      到SOCKS服务器的连接一经建立,客户机即发送SOCKS请求信息,并且完成认证商
    议。服务器评估请求,返回一个回应如下表所示:


      +----+-----+-------+------+----------+----------+
      |VER | REP | RSV | ATYP | BND.ADDR | BND.PORT |
      +----+-----+-------+------+----------+----------+
      | 1 | 1 | X'00' | 1  | Variable |   2  |
      +----+-----+-------+------+----------+----------+

    其中:

    o VER protocol version: X'05'
    o REP Reply field:
      o X'00' succeeded
      o X'01' general SOCKS server failure
      o X'02' connection not allowed by ruleset
      o X'03' Network unreachable
      o X'04' Host unreachable
      o X'05' Connection refused
      o X'06' TTL expired
      o X'07' Command not supported
      o X'08' Address type not supported
      o X'09' to X'FF' unassigned
    o RSV RESERVED
    o ATYP address type of following address
      o IP V4 address: X'01'
      o DOMAINNAME: X'03'
      o IP V6 address: X'04'
    o BND.ADDR server bound address
    o BND.PORT server bound port in network octet order
    标志RESERVED(RSV)的地方必须设置为X'00'。

      如果被选中的方法包括有认证目的封装,完整性和/或机密性的检查,则回应就被
    封装在方法选择的封装套中。

    CONNECT

      在CONNECT的回应中,BND.PORT包括了服务器分配的连接到目标主机的端口号,同
    时BND.ADDR包含了关联的IP地址。此处所提供的BND.ADDR通常情况不同于客户机连接
    到SOCKS服务器所用的IP地址,因为这些服务器提供的经常都是多址的(muti-homed)。
    都期望SOCKS主机能使用DST.ADDR和DST.PORT,连接请求评估中的客户端源地址和端口

    BIND

      BIND请求被用在那些需要客户机接受到服务器连接的协议中。FTP就是一个众所周
    知的例子,它通过使用命令和状态报告建立最基本的客户机-服务器连接,按照需要使
    用服务器-客户端连接来传输数据。(例如:ls,get,put)
    都期望在使用应用协议的客户端在使用CONNECT建立首次连接之后仅仅使用BIND请求建
    立第二次连接。都期望SOCKS主机在评估BIND请求时能够使用DST.ADDR和DST.PORT。
      有两次应答都是在BIND操作期间从SOCKS服务器发送到客户端的。第一次是发送在
    服务器创建和绑定一个新的socket之后。BIND.PORT域包含了SOCKS主机分配和侦听一
    个接入连接的端口号。BND.ADDR域包含了关联的IP地址。  客户端具有代表性的是
    使用这些信息来通报应用程序连接到指定地址的服务器。第二次应答只是发生在预期
    的接入连接成功或者失败之后。在第二次应答中,BND.PORT和BND.ADDR域包含了欲连
    接主机的地址和端口号。

    UDP ASSOCIATE(连接?)

      UDP 连接请求用来建立一个在UDP延迟过程中操作UDP数据报的连接。DST.ADDR和
    DST.PORT域包含了客户机期望在这个连接上用来发送UDP数据报的地址和端口。服务器
    可以利用该信息来限制至这个连接的访问。如果客户端在UDP连接时不持有信息,则客
    户端必须使用一个全零的端口号和地址。

      当一个含有UDP连接请求到达的TCP连接中断时,UDP连接中断。

      在UDP连接请求的回应中,BND.PORT和BND.ADDR域指明了客户端需要被发送UDP请
    求消息的端口号/地址。

    回应过程

      当一个回应(REP值非X'00')指明失败时,SOCKS主机必须在发送后马上中断该TCP
    连接。该过程时间必须为在侦测到引起失败的原因后不超过10秒。
      如果回应代码(REP值为X'00')时,则标志成功,请求或是BIND或是CONNECT,客户
    机现在就可以传送数据了。如果所选择的认证方法支持完整性、认证机制和/或机密性
    的封装,则数据被方法选择封装包来进行封装。类似,当数据从客户机到达SOCKS主机
    时,主机必须使用恰当的认证方法来封装数据。

    7.基于UDP客户机的程序

      一个基于UDP的客户端必须使用在BND.PORT中指出的UDP端口来发送数据报到UDP延
    迟服务器,而该过程是作为对UDP连接请求的回应而进行的。如果所选择的认证方法提
    供认证机制、完整性、和/或机密性,则数据报必须使用恰当的封装套给予封装。每一
    个UDP数据报携带一个UDP请求的报头(header):

      +----+------+------+----------+----------+----------+
      |RSV | FRAG | ATYP | DST.ADDR | DST.PORT |  DATA |
      +----+------+------+----------+----------+----------+
      | 2 |  1 |  1 | Variable |  2   | Variable |
      +----+------+------+----------+----------+----------+

    UDP请求报头是:

    o RSV Reserved X'0000'
    o FRAG Current fragment number
    o ATYP address type of following addresses:
      o IP V4 address: X'01'
      o DOMAINNAME: X'03'
      o IP V6 address: X'04'
    o DST.ADDR desired destination address
    o DST.PORT desired destination port
    o DATA user data

      当一个UDP延迟服务器决定延迟一个UDP数据报时,它会按兵不动,对客户机无任
    何通报。类似的,它会将它不能或不打算延迟的数据报Drop?掉。当一个UDP延迟服务
    器接收到一个来自远程主机的延迟数据报,它必须使用上面的UDP请求报头来封装该数
    据报,和任何认证方法选择的封装。

      一个UDP延迟服务器必须从SOCKS服务器获得所期望的客户机的IP地址,而该客户
    机要发送数据报到BND.PORT--在至UDP连接的回应中已经给出。UDP延迟服务器还必须
    drop掉除了特定连接中的一条记录之外的其它的所有源IP地址。

      FRAG域指出了数据报是否为大量的数据片(flagments)中的一片。如果标明了,高
    序(high-order)位说明是序列的结束段,而值为X'00'则说明该数据报是独立的。值介
    于1-127之间片断位于数据片序列中间。每一个接收端都有一个和这些数据片相关的重
    组队列表(REASSEMBLY QUEUE)和一个重组时间表(REASSEMBLY TIMER)。重组队列必须
    被再次初始化并且相关联的数据片必须被丢掉,而无论该重组时间表是否过期,或者
    一个新的携带FRAG域的数据报到达,并且FRAG域的值要小于正在进行的数据片序列中
    的FRAG域的最大值。且重组时间表必须不少于5秒。无论如何最好避免应用程序直接与
    数据片接触(?)。
      数据片的执行是可选的,一个不支持数据片的执行必须drop掉任何除了FRAG域值
    为X'00'了数据报。

      一个利用SOCKS的UDP程序接口必须预设有效的缓冲区来装载数据报,并且系统提
    供的实际缓冲区的空间要比数据报大:

    o if ATYP is X'01' - 10+method_dependent octets smaller

    o if ATYP is X'03' - 262+method_dependent octets smaller
    o if ATYP is X'04' - 20+method_dependent octets smaller

    8.安全考虑

      该文档描述了一个应用层的用于穿越IP网络防火墙的协议。这种穿越的安全性是
    高度依赖于正规的认证和正规执行方法提供的有效封装,以及在SOCKS客户端和SOCKS
    服务端所选择的安全性,还有管理员对认证方法选项所作的小心周密的考虑。

    9.参考文献
    [1] Koblas, D., "SOCKS", Proceedings: 1992 Usenix Security Symposium.
    [2] rfc1928说明:
    http://www.cnpaf.net/rfc/rfc1928.txt

    二、https/http代理
    机器和代理服务器建立TCP连接。
    机器发出GET命令。这时GET命令中包含URL或IP地址,明文。
    代理服务器将其中的URL转换为IP地址,可能会有DNS。将源数据包中的数据拷贝下来。去掉URL,重新组包,再发出去。

    三、实例代码
    这个实例包含了https与socks代理实现,具体详见:
    http://www.codeproject.com/KB/IP/casyncproxysocket.aspx

    参考资料:
    中国协议分析网:
    http://www.cnpaf.net/Class/RFC/200411/1051.html

    展开全文
  • JMeter(十四):代理服务器录制脚本

    万次阅读 2019-03-03 09:53:52
    背景:JMeter测试工具的脚本开发,其他博客都有介绍多种录制方式,例如浏览器插件录制、抓包工具录制、badboy录制、本身代理录制等等,五花八门,说到底看使用需求,如果是web网站功能性测试的话必然离不开录制功能...

    背景:JMeter测试工具的脚本开发,其他博客都有介绍多种录制方式,例如浏览器插件录制、抓包工具录制、badboy录制、本身代理录制等等,五花八门,说到底看使用需求,如果是web网站功能性测试的话必然离不开录制功能,如果是接口测试、服务端性能测试,动手编写将显得更加便捷(前提是有接口文档),如果没有,那就录制吧,然后再优化脚本即可,这里只讲JMeter的HTTP代理服务器的录制功能:HTTP(S) Test Script Recorder

    1、配置JMeter运行环境,cmd命令启动GUI模式,添加HTTP(S) Test Script Recorder:

    2、然后输入关键的参数:端口port、http代理地址、点击启动,会提示加载根证书(root),并生成在Jmeter/bin目录下;

    3、监听端口号和地址输入,务必与浏览器的代理配置保持一致:

    Name:名称,无实际意义,如果不选择保存工作台的话,不需要修改;

    Comments:注释,随意;

    State:状态:启动Start、停止Stop、重启ReStart;

    Global Settings:全局设置

    Port:端口号,默认80(可自定义,只要和代理设置一致即可)

    HTTPS Domains:代理服务器地址,本机localhost或127.0.0.1,或不填,

    Test Plan Creation:创建测试计划

    Target Controller:目标控制器,使用录制控制器,一般先新建测试计划,选择Test Plan > Thread Group,录制脚本到线程组;Grouping:分组,录制脚本时,是否选择分组,

    Do not group samplers : 不分组,按顺序记录脚本

    Add separators between groups :在组之间添加分隔符;

    Put each group in a new controller:为每个组创建一个新的简单控制器,并存储该组中的所有采样器。

    Store 1st sampler of each group only :仅记录每个组中的第一个请求。在采样器中将打开“ 跟踪重定向 ”和“ 检索所有嵌入资源”标志。

    Put each group in a new transaction controller :为每个组创建一个新的事务控制器,并存储该组中的所有采样器。

    Capture HTTP Headers:扑捉http头

    Add Assertions:添加空白断言

    Regx matching:正则表达式匹配

    HTTP Sampler Settings: HTTP取样器(样本)设置

    Prefix:

    Retrieve all Embedded Resources:设置检索生成的采样器中的所有嵌入资源

    Redirect Automatically:自动重定向,在生成的采样器中自动设置重定向

    Follow Redirects:按照重定向,在生成的采样器中设置跟随重定向

    Use Keep-Alive:使用Keep-Alive,在生成的采样器中设置使用Keep-Alive

    Type:类型,要生成哪种类型的采样器(默认HTTPClient或选择Java)

    Request Filtering:录制脚本过滤器

    Content Type filter:内容类型过滤,

    include:

    exclude:

    URL Patterns to Include:符合正则表达式,只录制包含匹配的url一个或多个请求;

    URL Patterns to Exclude:符合正则表达式,排除匹配的url一个或多个都不被录制;

    Notify Child Listeners of filtered samplers:通知过滤取样器的子监听;

    tips:代理录制服务器,默认选择跟随重定向Follow Redirects,当请求返回302等重定向问题时,自动跳转到正确页面;

    包涵/排除模式正则表达式:

    包涵:如路径:http://localhost:8080/project/index.html

    那么表达式:.*\.html(\?.*)或者.*

    注意,正则表达式匹配的字符串必须与整个主机+路径字符串相同

    排除:.*\.js.*|.*\.css.*|.*\.png.*|.*\.jpeg.*|.*\.jpg.*|.*\.gif.*

    4、这里以chrome浏览器为例,其他如IE、Firefox同样的道理

    5、在第二页 requests filtering设置录制时的条件:

    6、开始点击启动,录制脚本,这里以http://jmeter.apache.org/index.html官网为例,操作记录生成脚本如下图:

    7、在这里不得不提的是,如果运行上面的脚本,是不会有结果的,原因:代理服务器元件并不会执行;

    8、注意:录制完脚本之后,需要关闭浏览器的代理设置,不然同样运行无结果输出;

    9、所以在上面步骤中,需要对录制脚本的目标控制器进行设置,新增线程组,选择录制路径到线程组:

    10、So,最终执行脚本效果如下:

     

     

     

    展开全文
  • Python 对公布的代理服务器网站进行验证是否可以使用实验时找到一个网站实时公布代理服务器:http://www.xicidaili.com/nn/ 实验时找到一个网站实时公布代理服务器:http://www.xicidaili.com/nn/ 代码如下: import...

    Python 对公布的代理服务器网站进行验证是否可以使用

    实验时找到一个网站实时公布代理服务器:http://www.xicidaili.com/nn/

    代码如下:

    import urllib2
    import socket
    from bs4 import BeautifulSoup
    import os
    
    
    def IsOpen(ip, port):
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        try:
            s.connect((ip, int(port)))
            s.shutdown(2)
            return True
        except:
            return False
    
    
    header = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:36.0) Gecko/20100101 Firefox/36.0'}
    url = 'http://www.xicidaili.com/nn/'
    hurl = urllib2.Request(url, headers=header)
    
    html_doc = urllib2.urlopen(hurl).read()
    soup = BeautifulSoup(html_doc,features="lxml")
    trs = soup.find('table', id='ip_list').find_all('tr')
    for tr in trs[1:]:
        tds = tr.find_all('td')
        ip = tds[1].text.strip()
        port = tds[2].text.strip()
        protocol = tds[5].text.strip()
        if protocol == 'HTTP' or protocol == 'HTTPS':
            print ip
            if IsOpen(ip, port):
                print ip + ":" + port + " is OK"
                with open("yes.txt", "a") as ava:
                    ava.write(ip + ":" + port + os.linesep)
    
    展开全文
  • 代理服务器和反向代理服务器详解

    千次阅读 2018-07-24 12:11:54
    通常我们所说的代理,都是指的客户端向外界发起请求时,并不是直接与目标服务器连接,而是经过一个代理服务器,将所有请求交给代理服务器,由它去负责连接外界的目标服务器,同时从服务器返回的数据,也经过代理...
  • 代理服务器与反向代理服务器
  • HTTP代理服务器

    千次阅读 2019-06-14 21:40:16
    代理服务器实现流程 创建一个监听服务器,监听客户端的连接。 客户端连接上后,将客户端要上网的信息,发给网络web服务器, 然后从那里读取数据,再发给客户端。 注:客户端是通过浏览器的设置,来设置我的地址...
  • Chrome 代理服务器错误,连接不了网的解决方法 新安装的chrome浏览器,输入网址出现如下页面,连接不了网(ERR_PROXY_CONNECTION_FAILED): 解决方法:打开设置页面中的高级,如下:再点开系统中的打开代理设置...
  • Windows 10配置网络代理服务器

    万次阅读 2020-07-08 16:39:19
    一、配置Windows 10网络代理服务 1. 配置以太网参数 为了保证与CentOS 7.3服务器的连通性,首先配置IP地址,子网掩码、默认网关、DNS 2. 配置WLAN参数 Windows 10主机是通过WLAN上网的,因此需要配置WLAN参数,选中...
  • Squid代理服务器

    千次阅读 2019-08-11 09:31:20
    一、Squid代理服务器概念 二、Squid代理的作用 三、Squid的工作流程 四、Squid主要组成部分 五、Squid各种代理的定义 1、正向代理 2、反向代理 六、Squid调度器的实现(负载均衡) 一、squid代理服务器概念 ...
  • 代理服务器搭建

    千次阅读 2019-12-20 14:40:51
    今天总结一个非常简单的搭建代理服务器的方法。 下面是思维导图 服务器C只能被B服务器访问,如果a要访问的话就必须通过B进行代理。 首先在云平台上面有台服务器B linux系统就好 账号密码并确保可以ssh远程连接...
  • 代理服务器(ProxyServer)是一种重要的安全功能,它的工作主要在开放系统互联(OSI)模型的对话层,从而起到防火墙的作用。代理服务器大多被用来连接INTERNET(国际互联网)和INTRANET(局域网)。有正向代理和反向...
  • Squid代理服务

    万次阅读 2018-07-02 19:17:16
    Squid代理服务 一、squid概述 1、squid简介 ​ Squid cache(简称为Squid)是流行最广的,使用最普遍的开源缓存代理服务器。squid的主要作用和应用场景有: 用来做前置的Web缓存,加快用户访问Web的速度 ...
  • CC-Proxy配置网络代理服务器

    万次阅读 2020-07-13 19:27:44
    CC-Proxy配置网络代理服务器 本文是基于Windows 10系统环境,通过CC-Proxy配置网络代理服务器,Cent OS 7.3希望通过网络参数配置,可以实现通过网络代理服务器连接互联网: Windows 10 CentOS 7.3 一、配置CC-...
  • Linux服务器配置代理服务器

    千次阅读 2016-04-14 11:14:20
    apt-get代理服务器设置,命令行http, https, ftp代理服务器设置
  • 什么是反向代理服务器? 反向代理(Reverse Proxy)方式是指以代理服务器来接受...用百度百科上的一张图片展示反向代理服务服务器的作用和工作原理: 工作方式 反向代理服务器其实就是代理了外部网络上的主
  • 使用nginx设置代理服务器

    万次阅读 2018-05-29 21:38:54
    nginx可以利用其反向代理的功能来进行负载均衡的实现,同时也可以使用其正向代理的功能设置代理服务器,比如在内网的环境中,在可以连接外网的机器上运行nginx作为代理服务器,其他机器通过设定此台机器的IP和port...
  • PROXY SERVER 代理服务器

    千次阅读 2019-07-28 08:01:25
    Proxy是什么呢,是代理。...而Proxy处于客户机与服务器之间,对于服务器来说,Proxy是客户机,Proxy提出请求,服务器响应;对于客户机来说,Proxy是服务器,它接受客户机的请求,...它的作用很象现实生活中的代理服务商...
  • Mac微信代理服务器

    千次阅读 2018-12-13 17:20:10
    Mac微信一直不能使用代理服务器,所以大多数人在代理服务器上网时经常用网页版的微信,这样会很不方便。下面本人亲测的一种方法可以轻松在代理服务器的情况下登陆微信客户端。 1:下载Proxifier,Proxifier可以为...
  • 转发代理服务器与反向代理服务器

    千次阅读 2007-10-02 16:34:00
    转发代理服务器与反向代理服务器 说到代理服务器,大部分人都应该比较熟悉了。记得在学校的时候因为校园网无法访问国外网站,因此经常使用代理来访问国外的网站。但是提到反向代理服务器可能大部分人就比较陌生,...
  • Spring boot实现代理服务器

    千次阅读 2020-03-19 00:40:36
    代理服务器是介于浏览器和Web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,请求信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的...
  • nginx反向代理服务器

    千次阅读 2018-02-10 11:15:39
    Nginx作为时下最流行的HTTP服务器之一,同时它是一个反向代理...提到反向代理服务器,有同学可能觉得这个概念很模糊,如果说到代理,他可能明白,但是再引出一个正向代理,估计懵了,笔者将尝试用浅显易懂的比方...
  • 代理服务器基本认识

    千次阅读 2017-07-15 17:07:43
    一、代理服务器 代理服务器(Proxy Server)是一种重要的服务器安全功能,它的工作...提供代理服务的电脑系统或其它类型的网络终端称为代理服务器(英文:Proxy Server)。一个完整的代理请求过程为:客户端首先与代
  • curl设置代理服务器

    万次阅读 2017-01-10 10:34:12
    curl设置代理服务器
  • 代理服务器没有响应

    万次阅读 2019-03-12 16:03:25
    用了SSR一段时间后,在开机打开浏览器显示代理服务器没有响应。 1.打开控制面板选择Internet选项。 2.选择连接 3.选择局域网设置,将这个√取消掉。 4.点击确定就可以了。 ...
  • Linux设置代理服务器

    万次阅读 2018-04-19 14:37:35
    Windows搭建代理服务器 参考百度文档 Linux设置全局代理 打开/etc/skel/.bash_profile添加 http_proxy=http://192.168.5.100:8080 https_proxy=http://192.168.5.100:8080 export http_proxy https_proxy 执行...
  • centos7使用squid搭建代理服务器

    万次阅读 2020-09-10 09:37:56
    centos7使用squid搭建代理服务器 Squid是Linux自带的代理软件,与其它代理软件如Apache、Socks等相比,下载安装简单,配置灵活,支持缓存和多种协议。 #安装 yum install squid -y yum install httpd-tools -y #...
  • 代理服务器基本知识

    千次阅读 2018-01-12 17:21:21
    代理服务器系列(一):基础知识 2005 年 9 月 10 日 世界网络教研组 编 一、什么是代理服务器? 代理服务器英文全称是 Proxy Server,其功能就是代理网络用户去取得网络信息。 形象的说:它是网络信息的中转站...
  • 代理服务器拒绝连接

    千次阅读 2018-07-25 14:56:47
    可能是在访问网页的时候被篡改了网页设置,这时候,取消代理服务设置即可。 解决办法: 1、进入“控制面板”,点击里面的“网络和Internet”;   2、点击“Internet选项”;   3、点击“连接”下面的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 92,103
精华内容 36,841
关键字:

代理服务