CN107770138B - 指定ip地址的方法及代理服务器、客户端 - Google Patents

指定ip地址的方法及代理服务器、客户端 Download PDF

Info

Publication number
CN107770138B
CN107770138B CN201610705175.1A CN201610705175A CN107770138B CN 107770138 B CN107770138 B CN 107770138B CN 201610705175 A CN201610705175 A CN 201610705175A CN 107770138 B CN107770138 B CN 107770138B
Authority
CN
China
Prior art keywords
client
authentication
proxy server
server
connection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610705175.1A
Other languages
English (en)
Other versions
CN107770138A (zh
Inventor
冯国良
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201610705175.1A priority Critical patent/CN107770138B/zh
Publication of CN107770138A publication Critical patent/CN107770138A/zh
Application granted granted Critical
Publication of CN107770138B publication Critical patent/CN107770138B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请的目的是提供一种定IP地址的方法及代理服务器、客户端,通过从客户端获取连接请求消息,所述连接请求消息包括指定的IP地址、目标服务器的地址和端口号,然后根据目标服务器的地址和端口号,并以所述指定的IP地址与目标服务器建立连接,能够解决当前的代理服务都不支持源IP的指定的问题,实现客户端可以指定代理服务器以特定的IP和目标服务器通信,满足某些需要特定IP的需求。另外,通过基于SOCKS5协议客户端与代理服务器建立连接,对SOCKS5最新的网络通用代理协议作扩展,进行IP地址的指定,满足由客户端指定IP地址的需求的同时,可兼容各种应用层的协议,便捷、具有通用性。

Description

指定IP地址的方法及代理服务器、客户端
技术领域
本申请涉及计算机领域,尤其涉及一种指定IP地址的方法及代理服务器、客户端。
背景技术
随着互联网技术的飞速发展,网络代理技术被广泛地应用,当前的代理服务都不支持源IP的指定,导致无法满足某些需要特定IP的需求,如不能满足云邮箱的“独立IP”业务需求。
另外,目前的代理技术根据工作层次可以分为应用层代理和传输层代理:
应用层代理服务器工作在应用层,并且针对不同的网络应用提供不同的处理方法,比如HTTP、FTP、SMTP等,这样一旦有新的网络应用出现,这种代理就不能提供相应的服务,因此应用层代理的可扩展性很不好;
传输层代理是通过改变TCP/UDP包的源和目的IP地址等方式来实现的,显然这种方式不能灵活地满足应用层的业务变化。
发明内容
本申请的一个目的是提供一种指定IP地址的方法及代理服务器、客户端,能够解决现有代理技术无法指定IP地址和保证代理服务安全可靠的问题。
根据本申请的一个方面,提供了一种代理服务器端指定IP地址的方法,该方法包括:
接收客户端的连接请求;
从客户端获取认证方法选择请求,所述认证方法选择请求包括客户端支持的认证方法,从所述客户端支持的认证方法中选择认证方法,并反馈到客户端;
从所述客户端接收基于所述反馈的认证方法的认证请求,根据所述反馈的认证方法,向客户端反馈所述认证请求的认证结果;
若所述认证结果为通过,则从客户端获取连接请求消息,所述连接请求消息包括指定的IP地址、目标服务器的地址和端口号;
根据所述目标服务器的地址和端口号,并以所述指定的IP地址与目标服务器建立连接。
进一步的,上述方法中,与目标服务器建立连接的步骤之后,还包括:
向所述客户端回复与目标服务器的连接信息。
进一步的,上述方法中,与目标服务器建立连接的步骤之后,还包括:
从客户端获取数据请求信息并转发到目标服务器;
从所述目标服务器获取所述数据请求信息的回复,并转发到客户端。
进一步的,上述方法中,接收客户端的连接请求,包括:
基于SOCKS5协议接收客户端的连接请求。
进一步的,上述方法中,所述认证方法选择请求还包括客户端支持的认证方法的数量;
从所述客户端支持的认证方法中选择认证方法,包括:
若接收到的所述数量与接收到客户端支持的认证方法的实际数量一致,则从所述客户端支持的认证方法中选择认证方法。
根据本申请的另一面,还提供一种客户端指定IP地址的方法,该方法包括:
与代理服务器建立连接;
向代理服务器发送认证方法选择请求,所述认证方法选择请求包括客户端支持的认证方法,从所述代理服务器获取反馈的认证方法,所述反馈的认证方法从所述客户端支持的认证方法中选择;
向所述代理服务发送基于所述反馈的认证方法的认证请求,从所述代理服务器获取所述认证请求的认证结果,其中,所述认证结果由代理服务器根据所述反馈的认证方法生成,
若所述认证结果为通过,则向所述代理服务器发送连接请求消息,所述连接请求消息包括指定的IP地址、目标服务器的地址和端口号。
进一步的,上述方法中,向所述代理服务器发送连接请求消息的步骤之后,还包括:
从所述代理服务器获取与目标服务器的连接信息。
进一步的,上述方法中,向所述代理服务器发送连接请求消息的步骤之后,还包括:
向代理服务器发送数据请求信息;
从所述代理服务器获取所述数据请求信息的回复,所述数据请求信息的回复由所述代理服务器从所述目标服务器获取。
进一步的,上述方法中,与代理服务器建立连接,包括:
基于SOCKS5协议与代理服务器建立连接。
进一步的,上述方法中,所述认证方法选择请求包括客户端支持的认证方法的数量。
根据本申请的另一面,还提供一种指定IP地址的代理服务器,该代理服务器包括:
与客户端连接装置,用于接收客户端的连接请求;
获取装置,用于从客户端获取连接请求消息,所述连接请求消息包括指定的IP地址、目标服务器的地址和端口号;
与目标服务器连接装置,用于根据目标服务器的地址和端口号,并以所述指定的IP地址与目标服务器建立连接。
进一步的,上述代理服务器中,与目标服务器连接装置,还用于在与目标服务器建立连接之后,向所述客户端回复与目标服务器的连接信息。
进一步的,上述代理服务器中,与目标服务器连接装置,还用于从客户端获取数据请求信息并转发到目标服务器;从所述目标服务器获取所述数据请求信息的回复,并转发到客户端。
进一步的,上述代理服务器中,所述与客户端连接装置,用于基于SOCKS5协议接收客户端的连接请求。
进一步的,上述代理服务器中,所述与客户端连接装置,还用于从客户端获取连接请求消息之前,从客户端获取认证方法选择请求,所述认证方法选择请求包括客户端支持的认证方法;从所述客户端支持的认证方法中选择认证方法,并反馈到客户端。
进一步的,上述代理服务器中,所述认证方法选择请求还包括客户端支持的认证方法的数量;
所述与客户端连接装置,用于若接收到的所述数量与接收到客户端支持的认证方法的实际数量一致,则从所述客户端支持的认证方法中选择认证方法。
进一步的,上述代理服务器中,所述获取装置,还用于从所述客户端支持的认证方法中选择认证方法,并反馈到客户端之后,从所述客户端接收基于所述反馈的认证方法的认证请求;根据所述反馈的认证方法,向客户端反馈所述认证请求的认证结果。
进一步的,上述代理服务器中,所述获取装置,还用于若所述认证结果为通过,则从客户端获取连接请求消息。
根据本申请的另一面,还提供一种指定IP地址的客户端,该客户端包括:
与代理服务器连接装置,用于与代理服务器建立连接;
发送装置,用于向所述代理服务器发送连接请求消息,所述连接请求消息包括指定的IP地址、目标服务器的地址和端口号。
进一步的,上述客户端中,发送装置,还用于从所述代理服务器获取与目标服务器的连接信息。
进一步的,上述客户端中,发送装置,还用于向所述代理服务器发送连接请求消息之后,向代理服务器发送数据请求信息;从所述代理服务器获取所述数据请求信息的回复,所述数据请求信息的回复由所述代理服务器从所述目标服务器获取。
进一步的,上述客户端中,与代理服务器连接装置,用于基于SOCKS5协议与代理服务器建立连接。
进一步的,上述客户端中,发送装置,还用于向所述代理服务器发送连接请求消息之前,向代理服务器发送认证方法选择请求,所述认证方法选择请求包括客户端支持的认证方法;从所述代理服务器获取反馈的认证方法,所述反馈的认证方法从所述客户端支持的认证方法中选择。
进一步的,上述客户端中,所述认证方法选择请求包括客户端支持的认证方法的数量。
进一步的,上述客户端中,发送装置,还用于从所述代理服务器获取反馈的认证方法之后,向所述代理服务发送基于所述反馈的认证方法的认证请求;从所述代理服务器获取所述认证请求的认证结果,其中,所述认证结果由代理服务器根据所述反馈的认证方法生成。
进一步的,上述客户端中,发送装置,还用于若所述认证结果为通过,则向所述代理服务器发送连接请求消息。
根据本申请的另一面,还提供一种基于计算的设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
接收客户端的连接请求;
从客户端获取认证方法选择请求,所述认证方法选择请求包括客户端支持的认证方法,从所述客户端支持的认证方法中选择认证方法,并反馈到客户端;
从所述客户端接收基于所述反馈的认证方法的认证请求,根据所述反馈的认证方法,向客户端反馈所述认证请求的认证结果;
若所述认证结果为通过,则从客户端获取连接请求消息,所述连接请求消息包括指定的IP地址、目标服务器的地址和端口号;
根据所述目标服务器的地址和端口号,并以所述指定的IP地址与目标服务器建立连接。
根据本申请的另一面,还提供一种基于计算的设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
与代理服务器建立连接;
向代理服务器发送认证方法选择请求,所述认证方法选择请求包括客户端支持的认证方法,从所述代理服务器获取反馈的认证方法,所述反馈的认证方法从所述客户端支持的认证方法中选择;
向所述代理服务发送基于所述反馈的认证方法的认证请求,从所述代理服务器获取所述认证请求的认证结果,其中,所述认证结果由代理服务器根据所述反馈的认证方法生成,
若所述认证结果为通过,则向所述代理服务器发送连接请求消息,所述连接请求消息包括指定的IP地址、目标服务器的地址和端口号。
与现有技术相比,本申请通过从客户端获取连接请求消息,所述连接请求消息包括指定的IP地址、目标服务器的地址和端口号,然后根据目标服务器的地址和端口号,并以所述指定的IP地址与目标服务器建立连接,能够解决当前的代理服务都不支持源IP的指定的问题,实现客户端可以指定代理服务器以特定的IP和目标服务器通信,满足某些需要特定IP的需求。此外,本实施例还可解决发信模块和公网IP之间的解耦问题,因为如果不用代理技术,那么发信模块就必须部署在具备公网IP的机器上,而每次扩展发信模块都需要增加具备公网IP的机器,而这些机器是有限的;而使用本实施例的代理技术之后就解耦了,具备公网IP的机器即代理服务器可以不变,而发信模块即客户端可以不断扩展。
此外,从客户端获取认证方法选择请求,所述认证方法选择请求包括客户端支持的认证方法,从所述客户端支持的认证方法中选择认证方法,并反馈到客户端;从所述客户端接收基于所述反馈的认证方法的认证请求,根据所述反馈的认证方法,向客户端反馈所述认证请求的认证结果;若所述认证结果为通过,则从客户端获取连接请求消息,从而实现后续客户端与代理服务器之间根据选择的认证方法进行认证,保证代理服务器只为认证通过的客户端做代理服务,而不是随便什么端过来都可以让它做代理服务,这样可以防止客户端出现恶意的代理,即认证是为了保证客户端的身份是合法的。
另外,通过基于SOCKS5协议客户端与代理服务器建立连接,对SOCKS5最新的网络通用代理协议作扩展,进行IP地址的指定,满足由客户端指定IP地址的需求的同时,可兼容各种应用层的协议,便捷、具有通用性。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出SOCKS5代理服务器的实现模型图;
图2示出SOCKS5代理服务器的层次结构图;
图3示出根据本申请一具体的应用实例的指定IP地址的方法的流程图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本申请提供一种代理服务器端指定IP地址的方法,其中,该方法包括:
步骤S11,接收客户端的连接请求;
步骤S12,从客户端获取连接请求消息,所述连接请求消息包括指定的IP地址、目标服务器的地址和端口号;
步骤S13,根据目标服务器的地址和端口号,并以所述指定的IP地址与目标服务器建立连接。具体的,本实施例通过代理服务器先与客户端建立连接,然后代理服务器从客户端获取与目标服务器建立连接的连接请求消息,所述连接请求消息包括指定的IP地址、目标服务器的地址和端口号,然后根据目标服务器的地址和端口号,并以所述指定的IP地址与目标服务器建立连接,能够解决当前的代理服务都不支持源IP的指定的问题,实现客户端可以指定代理服务器以特定的IP和目标服务器通信,满足某些需要特定IP的需求,例如,在云邮箱的业务场景中,有一种“独立IP”业务,即某些域可以指定特定的IP去发信,以指定的IP去发信,其中一个优点是可以提高客户端的可信度,只要目标服务器端接受到指定IP的数据请求,可以认为该请求是可信的请求,可以响应请求。另外,提高可信度只是本实施例的一种应用场景,只要有业务场景需要指定特定的IP,本实施例都可以适用。此外,本实施例还可解决发信模块和公网IP之间的解耦问题,因为如果不用代理技术,那么发信模块就必须部署在具备公网IP的机器上,而每次扩展发信模块都需要增加具备公网IP的机器,而这些机器是有限的;而使用本实施例的代理技术之后就解耦了,具备公网IP的机器即代理服务器可以不变,而发信模块即客户端可以不断扩展。
本申请的代理服务器端指定IP地址的方法一优选的实施例中,步骤S13,与目标服务器建立连接的步骤之后,还包括:
步骤S14,向所述客户端回复与目标服务器的连接信息。在此,在客户端与目标服务器建立连接的步骤之后,向所述客户端回复与目标服务器的连接信息,方便客户端了解代理服务器与目标服务器的连接状况。
本申请的代理服务器端指定IP地址的方法一优选的实施例中,步骤S13,与目标服务器建立连接的步骤之后,还包括:
步骤S15,从客户端获取数据请求信息并转发到目标服务器;
步骤S16,从所述目标服务器获取所述数据请求信息的回复,并转发到客户端。在此,代理服务器与目标服务器建立连接之后,即可以进行正式的代理数据业务,实现客户端可以指定代理服务器以特定的IP和目标服务器之间进行数据业务的通信。
本申请的代理服务器端指定IP地址的方法一优选的实施例中,接收客户端的连接请求,包括:
基于SOCKS5协议接收客户端的连接请求。具体的,SOCKS代理工作在应用层和传输层之间,它只是简单地传递数据包而不必关心是何种应用层的协议,所以是最灵活、最通用的代理协议。SOCKS协议是指客户端和代理服务器端之间的协议,而代理服务器端与目标服务器之间建立连接就是普通的连接,不需基于SOCKS协议。当前最新的SOCKS版本是RFC1928规范的SOCKS5代理协议,而该规范并没有对代理时所用的IP做任何规定,因此现有的基于SOCKS的技术实现都是随机选择本机IP去代理的,显然并不能满足云邮箱的“独立IP”业务需求。如图1所示,SOCKS5协议是标准的网络代理协议,SOCKS5代理服务器是Client和Server端的“中间人”,其原理是代理服务器(SOCKS5Proxy)和客户端(Client)建立连接之后,Client端的请求数据先发送给SOCKS5Proxy,并由其转发至目标服务器(Server),然后SOCKS5Proxy将从Server接收到的回复数据转给Client端,即代理服务器负责接收客户端的请求,并和目标服务器建立连接,传递客户端的请求数据;此外还负责接收目标服务器的响应数据,并将这些数据转发给客户端,从而实现数据代理的目的。如图2所示,SOCKS5代理工作在应用层和传输层之间,因此与具体的应用层协议无关如HTTP、FTP、SMTP、POP,当出现新的应用层的协议时,也能提供正常代理服务。因此,本实施例考虑到系统的可扩展性和可维护性,对SOCKS5最新的网络通用代理协议作扩展,进行IP地址的指定,满足由客户端指定IP地址的需求的同时,可兼容各种应用层的协议,便捷、具有通用性。
本申请的代理服务器端指定IP地址的方法一优选的实施例中,步骤S12,从客户端获取连接请求消息的步骤之前,还包括:
从客户端获取认证方法选择请求,所述认证方法选择请求包括客户端支持的认证方法;
从所述客户端支持的认证方法中选择认证方法,并反馈到客户端,从而实现后续客户端与代理服务器之间根据选择的认证方法进行认证,保证代理服务器只为认证通过的客户端做代理服务,而不是随便什么端过来都可以让它做代理服务,这样可以防止客户端出现恶意的代理,即认证是为了保证客户端的身份是合法的。
本申请的代理服务器端指定IP地址的方法一优选的实施例中,所述认证方法选择请求还包括客户端支持的认证方法的数量;
从所述客户端支持的认证方法中选择认证方法,包括:
若接收到的所述数量与接收到客户端支持的认证方法的实际数量一致,则从所述客户端支持的认证方法中选择认证方法。在此,通过核对实际接收的认证方法的数量,保证认证方法接收无误,便于后续从接收到的认证方法中进行准确选择。
本申请的代理服务器端指定IP地址的方法一优选的实施例中,从所述客户端支持的认证方法中选择认证方法,并反馈到客户端的步骤之后,包括:
从所述客户端接收基于所述反馈的认证方法的认证请求;
根据所述反馈的认证方法,向客户端反馈所述认证请求的认证结果,从而实现后续客户端与代理服务器之间根据选择的认证方法进行认证,保证代理服务器只为认证通过的客户端做代理服务,而不是随便什么端过来都可以让它做代理服务,这样可以防止客户端出现恶意的代理,即认证是为了保证客户端的身份是合法的。
本申请的代理服务器端指定IP地址的方法一优选的实施例中,从客户端获取连接请求消息,包括:
若所述认证结果为通过,则从客户端获取连接请求消息。在此,在服务器端的认证结果为通过的前提下,才实现代理服务器与目标服务器的连接,实现后续客户端与代理服务器之间根据选择的认证方法进行认证,保证代理服务器只为认证通过的客户端做代理服务,而不是随便什么端过来都可以让它做代理服务,这样可以防止客户端出现恶意的代理,即认证是为了保证客户端的身份是合法的。
根据本申请的另一面,还提供一种客户端指定IP地址的方法,其中,该方法包括:
步骤S21,与代理服务器建立连接;
步骤S22,向所述代理服务器发送连接请求消息,所述连接请求消息包括指定的IP地址、目标服务器的地址和端口号。具体的,本实施例通过客户端向代理服务器发送连接请求消息,所述连接请求消息包括指定的IP地址、目标服务器的地址和端口号,然后根据目标服务器的地址和端口号,并以所述指定的IP地址与目标服务器建立连接,能够解决当前的代理服务都不支持源IP的指定的问题,实现客户端可以指定代理服务器以特定的IP和目标服务器通信,满足某些需要特定IP的需求,例如,在云邮箱的业务场景中,有一种“独立IP”业务,即某些域可以指定特定的IP去发信,以指定的IP去发信,其中一个优点是可以提高客户端的可信度,只要目标服务器端接受到指定IP的数据请求,可以认为该请求是可信的请求,可以响应请求。另外,提高可信度只是本实施例的一种应用场景,只要有业务场景需要指定特定的IP,本实施例都可以适用。此外,本实施例还可解决发信模块和公网IP之间的解耦问题,因为如果不用代理技术,那么发信模块就必须部署在具备公网IP的机器上,而每次扩展发信模块都需要增加具备公网IP的机器,而这些机器是有限的;而使用本实施例的代理技术之后就解耦了,具备公网IP的机器即代理服务器可以不变,而发信模块即客户端可以不断扩展。
本申请的客户端指定IP地址的方法一优选的实施例中,向所述代理服务器发送连接请求消息的步骤之后,还包括:
从所述代理服务器获取与目标服务器的连接信息。在此,在客户端与目标服务器建立连接的步骤之后,从目标服务器获取回复与目标服务器的连接信息,方便客户端了解代理服务器与目标服务器的连接状况。
本申请的客户端指定IP地址的方法一优选的实施例中,向所述代理服务器发送连接请求消息的步骤之后,还包括:
向代理服务器发送数据请求信息;
从所述代理服务器获取所述数据请求信息的回复,所述数据请求信息的回复由所述代理服务器从所述目标服务器获取。在此,代理服务器与目标服务器建立连接之后,即可以进行正式的代理数据业务,实现客户端可以指定代理服务器以特定的IP和目标服务器之间进行数据业务的通信。
本申请的客户端指定IP地址的方法一优选的实施例中,与代理服务器建立连接,包括:
基于SOCKS5协议与代理服务器建立连接。具体的,SOCKS代理工作在应用层和传输层之间,它只是简单地传递数据包而不必关心是何种应用层的协议,所以是最灵活、最通用的代理协议。SOCKS协议是指客户端和代理服务器端之间的协议,而代理服务器端与目标服务器之间建立连接就是普通的连接,不需基于SOCKS协议。当前最新的SOCKS版本是RFC1928规范的SOCKS5代理协议,而该规范并没有对代理时所用的IP做任何规定,因此现有的基于SOCKS的技术实现都是随机选择本机IP去代理的,显然并不能满足云邮箱的“独立IP”业务需求。如图1所示,SOCKS5协议是标准的网络代理协议,SOCKS5代理服务器是Client和Server端的“中间人”,其原理是代理服务器(SOCKS5Proxy)和客户端(Client)建立连接之后,Client端的请求数据先发送给SOCKS5Proxy,并由其转发至目标服务器(Server),然后SOCKS5Proxy将从Server接收到的回复数据转给Client端,即代理服务器负责接收客户端的请求,并和目标服务器建立连接,传递客户端的请求数据;此外还负责接收目标服务器的响应数据,并将这些数据转发给客户端,从而实现数据代理的目的。如图2所示,SOCKS5代理工作在应用层和传输层之间,因此与具体的应用层协议无关如HTTP、FTP、SMTP、POP,当出现新的应用层的协议时,也能提供正常代理服务。因此,本实施例考虑到系统的可扩展性和可维护性,对SOCKS5最新的网络通用代理协议作扩展,进行IP地址的指定,满足由客户端指定IP地址的需求的同时,可兼容各种应用层的协议,便捷、具有通用性。
本申请的客户端指定IP地址的方法一优选的实施例中,向所述代理服务器发送连接请求消息的步骤之前,还包括:
向代理服务器发送认证方法选择请求,所述认证方法选择请求包括客户端支持的认证方法;
从所述代理服务器获取反馈的认证方法,所述反馈的认证方法从所述客户端支持的认证方法中选择,从而实现后续客户端与代理服务器之间根据选择的认证方法进行认证,保证代理服务器只为认证通过的客户端做代理服务,而不是随便什么端过来都可以让它做代理服务,这样可以防止客户端出现恶意的代理,即认证是为了保证客户端的身份是合法的。
本申请的客户端指定IP地址的方法一优选的实施例中,所述认证方法选择请求包括客户端支持的认证方法的数量,便于后续代理服务器通过核对实际接收的认证方法的数量,保证认证方法接收无误,进而可以从接收到的认证方法中进行准确选择。
本申请的客户端指定IP地址的方法一优选的实施例中,从所述代理服务器获取反馈的认证方法的步骤之后,还包括:
向所述代理服务发送基于所述反馈的认证方法的认证请求;
从所述代理服务器获取所述认证请求的认证结果,其中,所述认证结果由代理服务器根据所述反馈的认证方法生成,从而实现后续客户端与代理服务器之间根据选择的认证方法进行认证,保证代理服务器只为认证通过的客户端做代理服务,而不是随便什么端过来都可以让它做代理服务,这样可以防止客户端出现恶意的代理,即认证是为了保证客户端的身份是合法的。
本申请的客户端指定IP地址的方法一优选的实施例中,向所述代理服务器发送连接请求消息,包括:
若所述认证结果为通过,则向所述代理服务器发送连接请求消息。在此,在服务器端的认证结果为通过的前提下,才实现代理服务器与目标服务器的连接,实现后续客户端与代理服务器之间根据选择的认证方法进行认证,保证代理服务器只为认证通过的客户端做代理服务,而不是随便什么端过来都可以让它做代理服务,这样可以防止客户端出现恶意的代理,即认证是为了保证客户端的身份是合法的。
详细的,本申请指定IP地址的方法一具体的应用实例的流程如图3所示,整个工作流程主要涉及Client、SOCKS5Proxy、Server这三者之间的交互,在代理过程中都采用一定的消息格式来定义方法选择、协定等信息,下面对代理过程和相关消息格式进行分析说明(标准的SOCKS5协议是支持TCP和UDP两种方式的,由于独立IP业务用到的是TCP,因此下面的分析都是基于TCP的):
1、建立连接
客户端根据约定的端口号(协议中规定是1080)和SOCKS5代理服务器之间建立TCP连接。
2、认证方法选择请求
当客户端和代理服务器建立连接之后,马上发送“认证方法选择请求”,其消息格式如表1所示:
VER NMETHODS METHODS
1 1 1to 255
表1认证方法请求
该消息格式的各字段说明如下:
VER:版本号,1字节,当前版本为version 5,所以该值为0X05。
NMETHODS:指定METHODS方法数目即前述认证方法的数量,1字节。
METHODS:可选择的方法,1~255字节,当前该值的定义如下:
●0X00 无需身份认证(表示不需要认证);
●0X01 以GSSAPI协议认证(需要认证的方案之一);
●0X02 以用户名/密码方式认证(需要认证的方案之一);
●0X03~0X7F 由IANA分配(需要认证的方案之一);
●0X80~0XFE 保留(预留的,供扩展用);
●0XFF 没有可接受的方法(“NO ACCEPTABLE METHODS”,没有可选的方法)。
在此,消息格式中的基本方案是在消息格式定义客户端提供可选择的方法(METHODS)供代理服务器从中选择一个代理服务器支持的认证方法,更优选的方案,在消息格式中提供方法数目(NMETHODS),是便于代理服务器将实际收到的方法的数量与方法数目进行核对,避免两者不符的通信错误;更优选的方案是,在发送版本号(VER),便于客户端和代理服务器的版本号核对一致,代理服务器才返回选择的认证方法,从而保证客户端与代理服务器之间可选择的方法的可靠约定。
3、支持的认证方法
当代理服务器收到第2步的请求之后,选择一种认证方法以告知所支持的方法,其消息格式如表2所示。
VER METHOD
1 1
表2选择的认证方法
该消息格式的各字段说明如下:
VER:版本号,1字节。
METHOD:选择第2步中的METHODS字段的一种,1字节。
4、认证请求(如果需要)
如果第3步中选择了需要认证的方式,客户端随后发起认证请求,客户端与代理服务器以双方约定的方式认证。
5、认证结果
代理服务器收到认证请求之后进行认证,并将结果返回给客户端。
6、请求详情
当认证成功之后,客户端进而向代理服务器发送详细的请求信息(包括目标地址、目标端口号等信息),其消息格式如表3所示。
VER CMD RSV ATYP DST.ADDR DST.PORT SADDR
1 1 X'00' 1 Variable 2 Variable
表3请求详情
该消息格式的各字段说明如下:
VER:版本号,1字节
CMD:命令类型,1字节,该字段可取值如下:
●0X01 CONNECT,表示建立TCP连接;
●0X02 BIND,表示建立一个绑定,供别人来连,如FTP;
●0X03 UDP ASSOCIATE,表示UDP相关联的。
RSV:保留字段,1字节
ATYP:server的地址类型,1字节,该字段可取值如下:
●0X01 IP V4地址
●0X03 域名
●0X04 IP V6地址
DST.ADDR:server的目标地址,可变长
DST.PORT:server的目标端口号,2字节
SADDR:指定的IP地址,该字段是本申请的创新点所在,是对原SOCKS5协议的扩展。旨在要求代理服务器以该IP与目标服务器建立连接,其中。Variable表示长度可变。
7、连接目标服务器
代理服务器在收到客户端的请求详情之后,按照客户端指定的IP地址去连接server的目标地址及端口号。
8、连接建立成功
代理服务器成功和目标服务器建立连接。
9、回复信息详情
代理服务器按客户端的需求和目标服务器server的建立连接,并将结果返回给客户端,其消息格式如表4所示。
VER REP RSV ATYP BND.ADDR BND.PORT
1 1 X'00' 1 Variable 2
表4回复信息详情
VER:版本号,1字节
REP:响应结果,1字节,该字段的可取值如下:
●0X00 成功
●0X01 一般的SOCKS服务端错误
●0X02 请求的连接不允许
●0X03 网络不可访问
●0X04 目标主机不可访问
●0X05 拒绝连接
●0X06 TTL过期
●0X07 不支持的命令
●0X08 地址类型不支持
●0X09 指定的IP不可用
●0X10~0XFF 未分配
RSV:保留字段,该值必须为0X00
ATYP:绑定的IP地址的地址类型,1字节
BND.ADDR:绑定的IP地址,如果客户端有指定的IP,则该值即为指定的IP,如果未指定,则该值为代理服务器随机选择的一个IP。
BND.PORT:绑定的端口号,2字节
10、正式代理数据
当上面的步骤都顺利完成时,则正式开始代理数据。代理服务器将每次客户端的请求转到目标服务器并将返回的数据转给客户端。而该过程是循环的,直到有一端断开连接。
根据本申请的另一面,还提供一种指定IP地址的代理服务器,其中,代理服务器100包括:
与客户端连接装置11,用于接收客户端的连接请求;
获取装置12,用于从客户端获取连接请求消息,所述连接请求消息包括指定的IP地址、目标服务器的地址和端口号;
与目标服务器连接装置13,用于根据目标服务器的地址和端口号,并以所述指定的IP地址与目标服务器建立连接。具体的,本实施例代理服务器先与客户端建立连接,然后代理服务器从客户端获取与目标服务器建立连接的连接请求消息,所述连接请求消息包括指定的IP地址、目标服务器的地址和端口号,然后根据目标服务器的地址和端口号,并以所述指定的IP地址与目标服务器建立连接,能够解决当前的代理服务都不支持源IP的指定的问题,实现客户端可以指定代理服务器以特定的IP和目标服务器通信,满足某些需要特定IP的需求,例如,在云邮箱的业务场景中,有一种“独立IP”业务,即某些域可以指定特定的IP去发信,以指定的IP去发信,其中一个优点是可以提高客户端的可信度,只要目标服务器端接受到指定IP的数据请求,可以认为该请求是可信的请求,可以响应请求。另外,提高可信度只是本实施例的一种应用场景,只要有业务场景需要指定特定的IP,本实施例都可以适用。此外,本实施例还可解决发信模块和公网IP之间的解耦问题,因为如果不用代理技术,那么发信模块就必须部署在具备公网IP的机器上,而每次扩展发信模块都需要增加具备公网IP的机器,而这些机器是有限的;而使用本实施例的代理技术之后就解耦了,具备公网IP的机器即代理服务器可以不变,而发信模块即客户端可以不断扩展。
本申请的指定IP地址的代理服务器的一优选的实施例中,与目标服务器连接装置13,还用于在与目标服务器建立连接之后,向所述客户端回复与目标服务器的连接信息。在此,在客户端与目标服务器建立连接的步骤之后,向所述客户端回复与目标服务器的连接信息,方便客户端了解代理服务器与目标服务器的连接状况。
本申请的指定IP地址的代理服务器的一优选的实施例中,与目标服务器连接装置13,还用于从客户端获取数据请求信息并转发到目标服务器;从所述目标服务器获取所述数据请求信息的回复,并转发到客户端。在此,代理服务器与目标服务器建立连接之后,即可以进行正式的代理数据业务,实现客户端可以指定代理服务器以特定的IP和目标服务器之间进行数据业务的通信。
本申请的指定IP地址的代理服务器的一优选的实施例中,所述与客户端连接装置11,用于基于SOCKS5协议接收客户端的连接请求。具体的,SOCKS代理工作在应用层和传输层之间,它只是简单地传递数据包而不必关心是何种应用层的协议,所以是最灵活、最通用的代理协议。SOCKS协议是指客户端和代理服务器端之间的协议,而代理服务器端与目标服务器之间建立连接就是普通的连接,不需基于SOCKS协议。当前最新的SOCKS版本是RFC1928规范的SOCKS5代理协议,而该规范并没有对代理时所用的IP做任何规定,因此现有的基于SOCKS的技术实现都是随机选择本机IP去代理的,显然并不能满足云邮箱的“独立IP”业务需求。如图1所示,SOCKS5协议是标准的网络代理协议,SOCKS5代理服务器是Client和Server端的“中间人”,其原理是代理服务器(SOCKS5Proxy)和客户端(Client)建立连接之后,Client端的请求数据先发送给SOCKS5Proxy,并由其转发至目标服务器(Server),然后SOCKS5Proxy将从Server接收到的回复数据转给Client端,即代理服务器负责接收客户端的请求,并和目标服务器建立连接,传递客户端的请求数据;此外还负责接收目标服务器的响应数据,并将这些数据转发给客户端,从而实现数据代理的目的。如图2所示,SOCKS5代理工作在应用层和传输层之间,因此与具体的应用层协议无关如HTTP、FTP、SMTP、POP,当出现新的应用层的协议时,也能提供正常代理服务。因此,本实施例考虑到系统的可扩展性和可维护性,对SOCKS5最新的网络通用代理协议作扩展,进行IP地址的指定,满足由客户端指定IP地址的需求的同时,可兼容各种应用层的协议,便捷、具有通用性。
本申请的指定IP地址的代理服务器的一优选的实施例中,所述与客户端连接装置11,还用于从客户端获取连接请求消息之前,从客户端获取认证方法选择请求,所述认证方法选择请求包括客户端支持的认证方法;从所述客户端支持的认证方法中选择认证方法,并反馈到客户端,从而实现后续客户端与代理服务器之间根据选择的认证方法进行认证,保证代理服务器只为认证通过的客户端做代理服务,而不是随便什么端过来都可以让它做代理服务,这样可以防止客户端出现恶意的代理,即认证是为了保证客户端的身份是合法的。
本申请的指定IP地址的代理服务器的一优选的实施例中,所述认证方法选择请求还包括客户端支持的认证方法的数量;
所述与客户端连接装置11,用于若接收到的所述数量与接收到客户端支持的认证方法的实际数量一致,则从所述客户端支持的认证方法中选择认证方法。在此,通过核对实际接收的认证方法的数量,保证认证方法接收无误,便于后续从接收到的认证方法中进行准确选择。
本申请的指定IP地址的代理服务器的一优选的实施例中,所述获取装置12,还用于从所述客户端支持的认证方法中选择认证方法,并反馈到客户端之后,从所述客户端接收基于所述反馈的认证方法的认证请求;根据所述反馈的认证方法,向客户端反馈所述认证请求的认证结果,从而实现后续客户端与代理服务器之间根据选择的认证方法进行认证,保证代理服务器只为认证通过的客户端做代理服务,而不是随便什么端过来都可以让它做代理服务,这样可以防止客户端出现恶意的代理,即认证是为了保证客户端的身份是合法的。
本申请的指定IP地址的代理服务器的一优选的实施例中,所述获取装置12,还用于若所述认证结果为通过,则从客户端获取连接请求消息。在此,在服务器端的认证结果为通过的前提下,才实现代理服务器与目标服务器的连接,实现后续客户端与代理服务器之间根据选择的认证方法进行认证,保证代理服务器只为认证通过的客户端做代理服务,而不是随便什么端过来都可以让它做代理服务,这样可以防止客户端出现恶意的代理,即认证是为了保证客户端的身份是合法的。
根据本申请的另一面,还提供一种指定IP地址的客户端,其中,该客户端200包括:
与代理服务器连接装置21,用于与代理服务器建立连接;
发送装置22,用于向所述代理服务器发送连接请求消息,所述连接请求消息包括指定的IP地址、目标服务器的地址和端口号。具体的,本实施例通过客户端向代理服务器发送连接请求消息,所述连接请求消息包括指定的IP地址、目标服务器的地址和端口号,然后根据目标服务器的地址和端口号,并以所述指定的IP地址与目标服务器建立连接,能够解决当前的代理服务都不支持源IP的指定的问题,实现客户端可以指定代理服务器以特定的IP和目标服务器通信,满足某些需要特定IP的需求,例如,在云邮箱的业务场景中,有一种“独立IP”业务,即某些域可以指定特定的IP去发信,以指定的IP去发信,其中一个优点是可以提高客户端的可信度,只要目标服务器端接受到指定IP的数据请求,可以认为该请求是可信的请求,可以响应请求。另外,提高可信度只是本实施例的一种应用场景,只要有业务场景需要指定特定的IP,本实施例都可以适用。此外,本实施例还可解决发信模块和公网IP之间的解耦问题,因为如果不用代理技术,那么发信模块就必须部署在具备公网IP的机器上,而每次扩展发信模块都需要增加具备公网IP的机器,而这些机器是有限的;而使用本实施例的代理技术之后就解耦了,具备公网IP的机器即代理服务器可以不变,而发信模块即客户端可以不断扩展。
本申请的指定IP地址的客户端的一优选的实施例中,发送装置22,还用于从所述代理服务器获取与目标服务器的连接信息。在此,在客户端与目标服务器建立连接的步骤之后,从目标服务器获取回复与目标服务器的连接信息,方便客户端了解代理服务器与目标服务器的连接状况。
本申请的指定IP地址的客户端的一优选的实施例中,发送装置22,还用于向所述代理服务器发送连接请求消息之后,向代理服务器发送数据请求信息;从所述代理服务器获取所述数据请求信息的回复,所述数据请求信息的回复由所述代理服务器从所述目标服务器获取。在此,代理服务器与目标服务器建立连接之后,即可以进行正式的代理数据业务,实现客户端可以指定代理服务器以特定的IP和目标服务器之间进行数据业务的通信。
本申请的指定IP地址的客户端的一优选的实施例中,与代理服务器连接装置21,用于基于SOCKS5协议与代理服务器建立连接。具体的,SOCKS代理工作在应用层和传输层之间,它只是简单地传递数据包而不必关心是何种应用层的协议,所以是最灵活、最通用的代理协议。SOCKS协议是指客户端和代理服务器端之间的协议,而代理服务器端与目标服务器之间建立连接就是普通的连接,不需基于SOCKS协议。当前最新的SOCKS版本是RFC1928规范的SOCKS5代理协议,而该规范并没有对代理时所用的IP做任何规定,因此现有的基于SOCKS的技术实现都是随机选择本机IP去代理的,显然并不能满足云邮箱的“独立IP”业务需求。如图1所示,SOCKS5协议是标准的网络代理协议,SOCKS5代理服务器是Client和Server端的“中间人”,其原理是代理服务器(SOCKS5Proxy)和客户端(Client)建立连接之后,Client端的请求数据先发送给SOCKS5Proxy,并由其转发至目标服务器(Server),然后SOCKS5Proxy将从Server接收到的回复数据转给Client端,即代理服务器负责接收客户端的请求,并和目标服务器建立连接,传递客户端的请求数据;此外还负责接收目标服务器的响应数据,并将这些数据转发给客户端,从而实现数据代理的目的。如图2所示,SOCKS5代理工作在应用层和传输层之间,因此与具体的应用层协议无关如HTTP、FTP、SMTP、POP,当出现新的应用层的协议时,也能提供正常代理服务。因此,本实施例考虑到系统的可扩展性和可维护性,对SOCKS5最新的网络通用代理协议作扩展,进行IP地址的指定,满足由客户端指定IP地址的需求的同时,可兼容各种应用层的协议,便捷、具有通用性。
本申请的指定IP地址的客户端的一优选的实施例中,发送装置22,还用于向所述代理服务器发送连接请求消息之前,向代理服务器发送认证方法选择请求,所述认证方法选择请求包括客户端支持的认证方法;从所述代理服务器获取反馈的认证方法,所述反馈的认证方法从所述客户端支持的认证方法中选择,从而实现后续客户端与代理服务器之间根据选择的认证方法进行认证,保证代理服务器只为认证通过的客户端做代理服务,而不是随便什么端过来都可以让它做代理服务,这样可以防止客户端出现恶意的代理,即认证是为了保证客户端的身份是合法的。
本申请的指定IP地址的客户端的一优选的实施例中,所述认证方法选择请求包括客户端支持的认证方法的数量,便于后续代理服务器通过核对实际接收的认证方法的数量,保证认证方法接收无误,进而可以从接收到的认证方法中进行准确选择。
本申请的指定IP地址的客户端的一优选的实施例中,发送装置22,还用于从所述代理服务器获取反馈的认证方法之后,向所述代理服务发送基于所述反馈的认证方法的认证请求;从所述代理服务器获取所述认证请求的认证结果,其中,所述认证结果由代理服务器根据所述反馈的认证方法生成,从而实现后续客户端与代理服务器之间根据选择的认证方法进行认证,保证代理服务器只为认证通过的客户端做代理服务,而不是随便什么端过来都可以让它做代理服务,这样可以防止客户端出现恶意的代理,即认证是为了保证客户端的身份是合法的。
本申请的指定IP地址的客户端的一优选的实施例中,发送装置22,还用于若所述认证结果为通过,则向所述代理服务器发送连接请求消息。在此,在服务器端的认证结果为通过的前提下,才实现代理服务器与目标服务器的连接,进一步实现后续客户端与代理服务器之间根据选择的认证方法进行认证,保证代理服务器只为认证通过的客户端做代理服务,而不是随便什么端过来都可以让它做代理服务,这样可以防止客户端出现恶意的代理,即认证是为了保证客户端的身份是合法的。
根据本申请的另一面,还提供一种基于计算的设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
接收客户端的连接请求;
从客户端获取认证方法选择请求,所述认证方法选择请求包括客户端支持的认证方法,从所述客户端支持的认证方法中选择认证方法,并反馈到客户端;
从所述客户端接收基于所述反馈的认证方法的认证请求,根据所述反馈的认证方法,向客户端反馈所述认证请求的认证结果;
若所述认证结果为通过,则从客户端获取连接请求消息,所述连接请求消息包括指定的IP地址、目标服务器的地址和端口号;
根据所述目标服务器的地址和端口号,并以所述指定的IP地址与目标服务器建立连接。根据目标服务器的地址和端口号,并以所述指定的IP地址与目标服务器建立连接。
根据本申请的另一面,还提供一种基于计算的设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
与代理服务器建立连接;
向代理服务器发送认证方法选择请求,所述认证方法选择请求包括客户端支持的认证方法,从所述代理服务器获取反馈的认证方法,所述反馈的认证方法从所述客户端支持的认证方法中选择;
向所述代理服务发送基于所述反馈的认证方法的认证请求,从所述代理服务器获取所述认证请求的认证结果,其中,所述认证结果由代理服务器根据所述反馈的认证方法生成,
若所述认证结果为通过,则向所述代理服务器发送连接请求消息,所述连接请求消息包括指定的IP地址、目标服务器的地址和端口号。
综上所述,本申请通过从客户端获取连接请求消息,所述连接请求消息包括指定的IP地址、目标服务器的地址和端口号,然后根据目标服务器的地址和端口号,并以所述指定的IP地址与目标服务器建立连接,能够解决当前的代理服务都不支持源IP的指定的问题,实现客户端可以指定代理服务器以特定的IP和目标服务器通信,满足某些需要特定IP的需求。此外,本实施例还可解决发信模块和公网IP之间的解耦问题,因为如果不用代理技术,那么发信模块就必须部署在具备公网IP的机器上,而每次扩展发信模块都需要增加具备公网IP的机器,而这些机器是有限的;而使用本实施例的代理技术之后就解耦了,具备公网IP的机器即代理服务器可以不变,而发信模块即客户端可以不断扩展。
另外,通过基于SOCKS5协议客户端与代理服务器建立连接,对SOCKS5最新的网络通用代理协议作扩展,进行IP地址的指定,满足由客户端指定IP地址的需求的同时,可兼容各种应用层的协议,便捷、具有通用性。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (22)

1.一种代理服务器端指定IP地址的方法,其中,该方法包括:
接收客户端的连接请求;
从客户端获取认证方法选择请求,所述认证方法选择请求包括客户端支持的认证方法,从所述客户端支持的认证方法中选择认证方法,并反馈到客户端;
从所述客户端接收基于所述反馈的认证方法的认证请求,根据所述反馈的认证方法,向客户端反馈所述认证请求的认证结果;
若所述认证结果为通过,则从客户端获取连接请求消息,所述连接请求消息包括指定的IP地址、目标服务器的地址和端口号;
根据所述目标服务器的地址和端口号,并以所述指定的IP地址与目标服务器建立连接。
2.根据权利要求1所述的方法,其中,与目标服务器建立连接的步骤之后,还包括:
向所述客户端回复与目标服务器的连接信息。
3.根据权利要求1所述的方法,其中,与目标服务器建立连接的步骤之后,还包括:
从客户端获取数据请求信息并转发到目标服务器;
从所述目标服务器获取所述数据请求信息的回复,并转发到客户端。
4.根据权利要求1所述的方法,其中,接收客户端的连接请求,包括:
基于SOCKS5协议接收客户端的连接请求。
5.根据权利要求1所述的方法,其中,所述认证方法选择请求还包括客户端支持的认证方法的数量;
从所述客户端支持的认证方法中选择认证方法,包括:
若接收到的所述数量与接收到客户端支持的认证方法的实际数量一致,则从所述客户端支持的认证方法中选择认证方法。
6.一种客户端指定IP地址的方法,其中,该方法包括:
与代理服务器建立连接;
向代理服务器发送认证方法选择请求,所述认证方法选择请求包括客户端支持的认证方法,从所述代理服务器获取反馈的认证方法,所述反馈的认证方法从所述客户端支持的认证方法中选择;
向所述代理服务发送基于所述反馈的认证方法的认证请求,从所述代理服务器获取所述认证请求的认证结果,其中,所述认证结果由代理服务器根据所述反馈的认证方法生成,
若所述认证结果为通过,则向所述代理服务器发送连接请求消息,所述连接请求消息包括指定的I P地址、目标服务器的地址和端口号。
7.根据权利要求6所述的方法,其中,向所述代理服务器发送连接请求消息的步骤之后,还包括:
从所述代理服务器获取与目标服务器的连接信息。
8.根据权利要求6所述的方法,其中,向所述代理服务器发送连接请求消息的步骤之后,还包括:
向代理服务器发送数据请求信息;
从所述代理服务器获取所述数据请求信息的回复,所述数据请求信息的回复由所述代理服务器从所述目标服务器获取。
9.根据权利要求6所述的方法,其中,与代理服务器建立连接,包括:
基于SOCKS5协议与代理服务器建立连接。
10.根据权利要求6所述的方法,其中,所述认证方法选择请求包括客户端支持的认证方法的数量。
11.一种指定IP地址的代理服务器,其中,该代理服务器包括:
与客户端连接装置,用于接收客户端的连接请求,从客户端获取连接请求消息之前,从客户端获取认证方法选择请求,所述认证方法选择请求包括客户端支持的认证方法;从所述客户端支持的认证方法中选择认证方法,并反馈到客户端;
获取装置,用于还用于从所述客户端支持的认证方法中选择认证方法,并反馈到客户端之后,从所述客户端接收基于所述反馈的认证方法的认证请求;根据所述反馈的认证方法,向客户端反馈所述认证请求的认证结果,若所述认证结果为通过,则从客户端获取连接请求消息,所述连接请求消息包括指定的IP地址、目标服务器的地址和端口号;
与目标服务器连接装置,用于根据目标服务器的地址和端口号,并以所述指定的IP地址与目标服务器建立连接。
12.根据权利要求11所述的代理服务器,其中,与目标服务器连接装置,还用于在与目标服务器建立连接之后,向所述客户端回复与目标服务器的连接信息。
13.根据权利要求11所述的代理服务器,其中,与目标服务器连接装置,还用于从客户端获取数据请求信息并转发到目标服务器;从所述目标服务器获取所述数据请求信息的回复,并转发到客户端。
14.根据权利要求11所述的代理服务器,其中,所述与客户端连接装置,用于基于SOCKS5协议接收客户端的连接请求。
15.根据权利要求11所述的代理服务器,其中,所述认证方法选择请求还包括客户端支持的认证方法的数量;
所述与客户端连接装置,用于若接收到的所述数量与接收到客户端支持的认证方法的实际数量一致,则从所述客户端支持的认证方法中选择认证方法。
16.一种指定IP地址的客户端,其中,该客户端包括:
与代理服务器连接装置,用于与代理服务器建立连接;
发送装置,用于向代理服务器发送认证方法选择请求,所述认证方法选择请求包括客户端支持的认证方法;从所述代理服务器获取反馈的认证方法,所述反馈的认证方法从所述客户端支持的认证方法中选择,向所述代理服务发送基于所述反馈的认证方法的认证请求;从所述代理服务器获取所述认证请求的认证结果,其中,所述认证结果由代理服务器根据所述反馈的认证方法生成,若所述认证结果为通过,则向所述代理服务器发送连接请求消息,所述连接请求消息包括指定的IP地址、目标服务器的地址和端口号。
17.根据权利要求16所述的客户端,其中,发送装置,还用于从所述代理服务器获取与目标服务器的连接信息。
18.根据权利要求16所述的客户端,其中,发送装置,还用于向所述代理服务器发送连接请求消息之后,向代理服务器发送数据请求信息;从所述代理服务器获取所述数据请求信息的回复,所述数据请求信息的回复由所述代理服务器从所述目标服务器获取。
19.根据权利要求16所述的客户端,其中,与代理服务器连接装置,用于基于SOCKS5协议与代理服务器建立连接。
20.根据权利要求16所述的客户端,其中,所述认证方法选择请求包括客户端支持的认证方法的数量。
21.一种基于计算的设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
接收客户端的连接请求;
从客户端获取认证方法选择请求,所述认证方法选择请求包括客户端支持的认证方法,从所述客户端支持的认证方法中选择认证方法,并反馈到客户端;
从所述客户端接收基于所述反馈的认证方法的认证请求,根据所述反馈的认证方法,向客户端反馈所述认证请求的认证结果;
若所述认证结果为通过,则从客户端获取连接请求消息,所述连接请求消息包括指定的IP地址、目标服务器的地址和端口号;
根据所述目标服务器的地址和端口号,并以所述指定的IP地址与目标服务器建立连接。
22.一种基于计算的设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:
与代理服务器建立连接;
向代理服务器发送认证方法选择请求,所述认证方法选择请求包括客户端支持的认证方法,从所述代理服务器获取反馈的认证方法,所述反馈的认证方法从所述客户端支持的认证方法中选择;
向所述代理服务发送基于所述反馈的认证方法的认证请求,从所述代理服务器获取所述认证请求的认证结果,其中,所述认证结果由代理服务器根据所述反馈的认证方法生成,
若所述认证结果为通过,则向所述代理服务器发送连接请求消息,所述连接请求消息包括指定的I P地址、目标服务器的地址和端口号。
CN201610705175.1A 2016-08-22 2016-08-22 指定ip地址的方法及代理服务器、客户端 Active CN107770138B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610705175.1A CN107770138B (zh) 2016-08-22 2016-08-22 指定ip地址的方法及代理服务器、客户端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610705175.1A CN107770138B (zh) 2016-08-22 2016-08-22 指定ip地址的方法及代理服务器、客户端

Publications (2)

Publication Number Publication Date
CN107770138A CN107770138A (zh) 2018-03-06
CN107770138B true CN107770138B (zh) 2020-12-25

Family

ID=61264068

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610705175.1A Active CN107770138B (zh) 2016-08-22 2016-08-22 指定ip地址的方法及代理服务器、客户端

Country Status (1)

Country Link
CN (1) CN107770138B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108563514B (zh) * 2018-03-16 2021-10-01 创新先进技术有限公司 访问应用配置服务的方法、应用和电子设备
CN111355693B (zh) * 2018-12-24 2023-10-31 北京奇虎科技有限公司 代理服务的实现方法、装置、电子设备和存储介质
CN109547567B (zh) * 2018-12-25 2021-10-22 北京市天元网络技术股份有限公司 代理连接方法和装置
CN109587275A (zh) * 2019-01-08 2019-04-05 网宿科技股份有限公司 一种通信连接的建立方法及代理服务器
CN111064713B (zh) 2019-02-15 2021-05-25 腾讯科技(深圳)有限公司 一种分布式系统中的节点控制方法和相关装置
CN110071936B (zh) * 2019-05-05 2021-10-26 苏州阳野自动化系统有限公司 一种识别代理ip的系统及方法
CN110602192A (zh) * 2019-08-30 2019-12-20 北京谷数科技有限公司 一种扩展存储集群系统网络通信能力的方法
US11831616B2 (en) * 2020-03-24 2023-11-28 Microsoft Technology Licensing, Llc Reverse proxy servers for implementing application layer-based and transport layer-based security rules
CN111341163A (zh) * 2020-04-16 2020-06-26 湖南翰坤实业有限公司 一种基于vr技术的建筑安全教育多人在线培训系统及方法
CN113438230B (zh) * 2021-06-23 2022-08-30 中移(杭州)信息技术有限公司 协议协商方法、装置、代理服务器及存储介质
CN113556388B (zh) * 2021-07-14 2023-06-13 杭州玳数科技有限公司 代理服务方法、代理服务平台、计算机设备和存储介质
CN113965577B (zh) * 2021-08-31 2024-02-27 联通沃音乐文化有限公司 一种智能切换Socks5代理服务器节点的系统与方法
CN114025009B (zh) * 2021-10-20 2024-04-16 北京奥星贝斯科技有限公司 转发请求的方法、系统、代理服务器和装置
CN114124935A (zh) * 2021-11-18 2022-03-01 北京明朝万达科技股份有限公司 Ftp服务的实现方法、系统、设备及存储介质
CN114125016A (zh) * 2021-11-30 2022-03-01 北京天融信网络安全技术有限公司 一种支持多协议的正向代理方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1564536A (zh) * 2004-03-18 2005-01-12 上海交通大学 基于攻防和视频组播技术的网络化交互式教学实验方法
EP1678918B1 (en) * 2003-10-10 2007-12-12 Citrix Systems, Inc. A persistent and reliable session securely traversing network components using an encapsulating protocol
CN103475746A (zh) * 2013-08-09 2013-12-25 杭州华三通信技术有限公司 一种终端服务方法及装置
CN104462570A (zh) * 2014-12-26 2015-03-25 小米科技有限责任公司 网页内容获取方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140258465A1 (en) * 2013-03-11 2014-09-11 Cisco Technology, Inc. Identification of originating ip address and client port connection to a web server via a proxy server

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1678918B1 (en) * 2003-10-10 2007-12-12 Citrix Systems, Inc. A persistent and reliable session securely traversing network components using an encapsulating protocol
CN1564536A (zh) * 2004-03-18 2005-01-12 上海交通大学 基于攻防和视频组播技术的网络化交互式教学实验方法
CN103475746A (zh) * 2013-08-09 2013-12-25 杭州华三通信技术有限公司 一种终端服务方法及装置
CN104462570A (zh) * 2014-12-26 2015-03-25 小米科技有限责任公司 网页内容获取方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于SOCKS5 协议的专用网络文件传输的设计与实现;陈静;《大众科技》;20090930;摘要,第33页左栏第二部分,第34页右栏第四部分,图1 *

Also Published As

Publication number Publication date
CN107770138A (zh) 2018-03-06

Similar Documents

Publication Publication Date Title
CN107770138B (zh) 指定ip地址的方法及代理服务器、客户端
CN109067914B (zh) Web服务的代理方法、装置、设备及存储介质
US8626921B2 (en) Device and service management based on layer 2 through layer 7 device attributes
CN112887444A (zh) 一种vpn网络的请求处理方法、客户端设备及系统
US7933272B2 (en) Methods and systems for resolving a first node identifier in a first identifier domain space to a second node identifier in a second identifier domain space
CN106605421B (zh) 用于服务节点的匿名访问和控制的方法和装置
KR101842316B1 (ko) Nfc 피어 투 피어 통신 환경에서 인터넷 프로토콜(ip) 데이터 통신을 제공하는 방법 및 시스템
US20130198266A1 (en) Facilitating communication between web-enabled devices
US9391881B2 (en) System and methods for dynamic network address modification
US20120317254A1 (en) Network platform in a network device ecosystem
WO2019144742A1 (zh) 用户终端和设备的绑定方法、装置和系统
US7930370B2 (en) Method and system for remote configuration of managed nodes
TW201706901A (zh) 用戶端登錄伺服器端的鑑別方法、裝置、系統及電子設備
CN104980426B (zh) 用于内容中心网络中的动态名称配置的系统和方法
RU2654854C1 (ru) Способ сбора данных о пользователе устройства беспроводной связи и машиночитаемый носитель для реализации этого способа
US20110154319A1 (en) IPv4/IPv6 Bridge
CN110769009B (zh) 用户身份认证方法及系统
JP2019515555A (ja) 識別情報指向型ネットワークの匿名識別情報及びプロトコル
CN112714027B (zh) 物联网终端设备接入网关的方法和系统
KR20150114404A (ko) 콘텐츠-중심 네트워크 내의 장치 등록 및 발견을 위한 시스템과 방법
JP2017208797A (ja) 不均一ネットワークにまたがる統合されたデータ・ネットワーキング
CN107800745B (zh) 基于mDNS进行服务宣告和服务发现的方法、装置和计算机可读存储介质
US9832119B2 (en) Communication block apparatus and communication block method
CN110943962B (zh) 一种认证方法、网络设备和认证服务器以及转发设备
WO2016095751A1 (zh) 一种域名解析方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant