今日,嗨壳技术分享网小编分享包含javasocks4握手协议的词条 相关内容,内容如下。
本篇文章给大家谈谈javasocks4握手协议,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
1、SOCK HTTP代理的区别
2、SOCKS4 和socks5是什么意思
3、SOCKS5代理和http代理有什么区别?不同?
4、共享上网
5、OkHttp源码解析 (三)——代理和路由
SOCK HTTP代理的区别
大概是这样的,两个代理实现的功能都一样,但使用的协议不一样,HTTP代理使用HTTP协议来交换客户机和服务器数据报,一般用于web页面的访问和使用http协议的软件下载,而sock5是一个通用的代理协议,你可以通过sock5代理访问网站、访问ftp等等,没有传输、访问协议的限制,更通用一些
SOCKS4 和socks5是什么意思
socks4和socks5都属于socks协议,只是由于所支持的具体应用不同而存在差异。socks4代理只支持TCP应用,而socks5代理则可以支持TCP和UDP两种应用。不过由于socks5代理还支持各种身份验证机制,服务器端域名解析等,而socks4代理没有,所以通常对外开放的socks代理都是socks4代理,因此,UDP应用通常都不能被支持。也就是说,socks4能干的socks5都可以干,反过来就不行了。
SOCKS5代理和http代理有什么区别?不同?
1、概念不同
(1)socks5代理,采用socks协议的代理服务器,是一种通用的代理服务器。
(2)http proxy,采用http协议代理服务器,主要代理浏览器访问网页。
2、代理速度不同
(1)http代理工作在应用层上,只允许用户通过HTTP协议访问外部网站。
(2)Socks5代理工作在会话层,不要求应用程序遵循特定的操作系统平台,Socks5代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求)。
所以,Socks5代理比http代理速度要快得多。
3、端口不同
(1)socks5代理默认端口是1080。
(2)http代理一般端口是80、8080、3128等。
参考资料来源:百度百科-http代理
参考资料来源:百度百科-SOCKS5代理
共享上网
怎样获得代理服务器地址
代理服务器地址就是安装代理服务器的机器的本地IP地址。
这个地址,是指服务器在局域网中的IP地址。本地IP地址可以从CCProxy的设置对话框中得到。设置对话框中的本地IP地址一般情况下可以用”自动检测”得到。如果服务器安装了多网卡,则需要手工选取:取消”自动检测”,从列表中选取。如果不能确定服务器的IP地址(如DHCP用户),也可以用服务器的机s器名作为代理服务器地址。
设置IE浏览器代理上网
IE浏览器-菜单”工具”-“Internet选项”-“连接”-“局域网设置”-选中”使用代理服务器”-“高级”-“代理服务器设置”。
取消”对所有协议均使用相同的代理服务器”;
在”HTTP”中填上代理服务器地址,端口为808;
在”Secure”中填上代理服务器地址,端口为808;
在”FTP”中填上代理服务器地址,端口为808;
在”Gopher”中填上代理服务器地址,端口为808;
在”Socks”中填上代理服务器地址,端口为1080。
具体设置请看图例
设置Outlook的邮件代理
具体设置请看图例。
设置Foxmail邮件代理
具体设置请看图例。
设置Outlook新闻代理
选择你已经配置好的新闻服务器,右键菜单-属性-服务器,
假设你原来的服务器名为msnews.microsoft.com,现在将服务器名改为代理服务器地址,选择”此服务器要求登录”,在帐号里面填上 #msnews.microsoft.com,密码空缺,在”记住密码”前打勾.需要注意的是,如果您上的不是免费的新闻服务器,也就是要求您提供帐号和密码的,那么您的帐号名应该修改为:旧的帐号名#原新闻服务器地址,密码还是原来的密码。
设置CuteFTP代理
具体设置请看图例。
设置CuteFTP Pro代理
菜单”Edit”-“Global Settings”-“Connection”-“SOCKS4 5”:
选择”Use the highlighted Socks server when connecting.”;
选择”Add”按钮,删除Host里的”New”,填上代理服务器地址,Port填1080。
不要选”Use Authentication”,选择”Socks5″。
设置ICQ代理
ICQ- Preferences – Connections:
”Server” : 选择”Using Firewall”, “Proxy” 选择”Socks 5″
”Firewall” : 选择”Socks 5″, 在”Host”里填写代理服务器地址,”Port” 填1080,选择”use proxy to resolve hostnames”
具体设置请看图例 (假设代理服务器地址为192.168.0.1)
设置OICQ代理
具体设置请看图例。
设置MSN Messenger代理(以MSN5.0为例)
在ccproxy中开启DNS服务,客户端网络属性里的TCP/IP指定DNS地址,指向代理服务器IP地址,并设好网关(为代理服务器的IP);
1.使用socks5协议登录方法(图例);
2.使用socks4协议登录方法:
a.在ccproxy中”设置”——”高级”——”其他”,开放sock4协议;
b. 在IE里设置好代理;
c.在MSN Messageer的菜单”工具”-“选项”-“连接”:
选择”我使用代理服务器”,类型选择SOCKS4,服务器填本地代理服务器的IP地址,端口1080,其他不填。
设置网络蚂蚁代理
菜单”Option”-“Preferences”,弹出设置对话框,
选择”Proxy”一页,在列表框里选择”Direct connection”,取消”Default for HTTP”和”Default for FTP”选择,点击”Add”,在”Name”填上CCProxy,”Addr”填上代理服务器地址,”Port”填上1080,”Type”选择Socks5,确定,选择刚刚添加的”CCProxy”,选择”Default for Http”、”Default for FTP”和”User defaultproxy for all jobs”,确定。
设置网际快车FlashGet代理
”工具”-“选项”-“代理服务器”-“添加”,在名称里写上ccproxy,类型选Socks5-“确定”-在”ccproxy”一行的”Http缺省”和”Ftp缺省”两列打勾,在”所有的任务均使用缺省的代理服务器”前打勾。
设置联众游戏代理
运行联众游戏,弹出”选择连接站点”对话框-“设置代理服务器”:
在”通过代理服务器(Proxy)连接Internet”前打勾,在”代理服务器地址”里填上代理服务器地址,端口为1080,选择”使用Socks5协议”,其他为空。由于联众的SOCKS5不支持用户名密码方式,如果您的帐号管理使用了用户名密码管理方式,请选择”使用SOCKS4协议”。
设置客户机联网游戏CS、石器时代、三国等代理
这类软件本身没有设置代理的功能,就只能求助于NEC的e-Border,需要在客户端安装e-Border。在google里搜索”猎手与蚂蚁收藏馆”,该网站上有完整的NEC e-Border Client 2.11 的解决方法和程序下载。
e-Border简单设置方法:
在客户端安装e-Border Client, 打开e-Border设置界面,在General一页,有三个图标,有一个”Setup Wizard”. 点击”Setup Wizard” – “e-Border Client Setup Wizard” – 选择 “I want to set up the client” – 下一步 – 选择 “I have one server” – 下一步 – 在 Name 里填上代理服务器地址,在Port里填上 1080 – 下一步 -选择 “Does not require authenication” – 下一步 – 选择”Proxy All” – 完成。
需要注意的是客户端的网络属性 – TCP/IP属性里一定要设置DNS,地址填代理服务器的IP地址。服务器上的CCProxy设置里要选择DNS服务。
具体设置方法请看图例
设置语音聊天代理
大部分网站提供的语音聊天都没有设置代理的功能,需要在客户端安装SocksCap32,将语音聊天软件或者其载体IE浏览器加入到SocksCap32里。
具体设置方法请看图例
设置NetMeeting代理
1、服务器安装ccproxy,启用dns代理、socks代理、socks4代理(设置-高级-其他)
2、安装sockscap,设置好sockscap代理,具体设置请看图例。
3、将客户端的tcp/ip网络属性里的dns地址设为代理服务器的ip地址
4、将Netmeeting 拖入sockscap里启动即可
设置在线电影RealPlayer代理
英文版本RealPlayer具体设置请看图例。中文版本RealPlayer具体设置请看图例。
设置在线电影Media Player代理
如果是在Media Player播放器里直接播放在线电影,具体设置请看图例。
如果是在IE浏览器里直接播放MediaPlayer电影,由于MediaPlayer在IE里不支持代理服务器,需要在客户端安装SocksCap,具体设置方法和语言聊天设置方法相同,请参考图例。
设置NetTerm上BBS站点
菜单”File”-“Phone Directory”。在列表中选择一项你想连接的BBS。比如bbs.execpc.com。这时下面的信息
显示为:Host Name为bbs.execpc.com,Host/IP为空,Telnet Port为23。在Host/IP里填写代理服务器地址,
就可以了。单击”Connect”按钮,这时蓝色显示屏上会出现: CCProxy TelnetCCProxy …等提示信息,输入
open bbs.execpc.com,敲”Enter”键,就可以登陆bbs.execpc.com了。
如果不想每次都输入open bbs.execpc.com,你需要在按照这样的步骤来做:
1. 用Notepad编辑一个文本文件。
如果登陆bbs.execpc.com,文本的内容为:
output “open bbs.execpc.com ^M”
如果登录bbs.tsinghua.edu.cn,文本的内容为:
output “bbs.tsinghua.edu.cn ^M”
2. 将这个文件保存到NetTerm的安装目录。
3. 打开”Phone Directory”对话框里选择对应的登陆服务器,选择”Select Logon Script”,”Select”刚才保存的
文件,”OK”。
设置IE浏览器里基于Java的聊天室(如263游戏),股票在线,证券在线,期货在线网站代理
因为这类聊天室是用Java写的(如网易聊天室 chat.163.com、263游戏),需要设置java虚拟机的SOCKS4代理,具体设置方法如下:
1. 在服务器上的代理服务器CCProxy的”设置”对话框里,选择”DNS”。
2. 确认客户端的网络属性里设置了DNS,DNS地址填代理服务器的IP地址。
3. 在IE浏览器里设置好SOCKS代理。
4. 在客户端的IE浏览器里访问 来设置java虚拟机的socks代理:
选择”设置SOCKS代理服务器”,”SOCKS Proxy 主机”后面填代理服务器的IP地址,”端口”填1080,然后点确认就可以了。
设置mIRC代理
File-Opitions-connect-Firewall: 选择Server, Dcc, Socks5。 Hostname填写代理服务器地址 Port 1080
设置Norton AntiVirus在线更新病毒库代理
首先在IE里设置好http代理,打开Norton AntiVirus的LiveUpdate,
弹出”Live Update”对话框,单击对话框上的”配置”按钮,
弹出”LiveUpdate 配置”对话框,
在”ISP”选项卡里选择第一项”控制面板中的Internet选项”,
在”Proxy”选项卡里选择第三项”使用Internet Explorer中的代理设置” 。
设置金山毒霸在线升级代理
具体设置请看图例。
其它软件的代理设置
1)如果这些软件本身有代理设置选项(一般在网络设置或者系统设置里),就可以参照相应协议和端口进行设置。
2)如果这些软件本身没有代理设置,可以在客户端安装NEC公司SocksCap32,将这些软件加入到SocksCap32里。
SocksCap的具体设置方法和下载地址请看
超星阅读器的代理设置
具体设置请看图例
代理网络电视播放软件livePlayerSetup
1、在网站上 下载livePlayerSetup.exe,并安装;
2、客户端安装e-border,e-Border安装方法。
雅虎通设置方法
具体设置请看图例。
如何设置Netscape?
Edit-Preferences-Advanced-Proxies-Manual proxy configuration: FTP Proxy, Gopher Proxy, HTTP Proxy, SSL Proxy 填上本地代理服务器IP地址,端口808。 SOCKS5 Host 填上本地代理服务器IP地址,端口1080,选择SOCKS v5。
怎样设置Outlook收发Hotmail邮件?
要求代理服务器CCProxy启动了DNS服务,客户端的网络属性里设置了DNS地址。
客户端只要设置了IE代理,就可以用outlook收发hotmail邮件,无需特别设置。因为outlook收发hotmail用的是IE的代理。
如何在IE里登录FTP站点?
方法1:(适用文件上传和下载)
1、在CCProxy里启用DNS服务,开放SOCKS4协议;
2、客户端网络属性里的TCP/IP指定DNS地址,指向代理服务器IP地址,并设好网关(为代理服务器的IP);
3、客户端IE设置,“internet选项”——“连接”——“局域网设置”——“代理服务器”,FTP这一项不要填,其余填完整。
方法2:(仅适用于文件下载)
1、在CCProxy里开启FTP(Web):808;
2、客户端网络属性里的TCP/IP指定DNS地址,指向代理服务器IP地址,并设好网关(为代理服务器的IP);
3、客户端IE设置,“internet选项”——“连接”——“局域网设置”——“代理服务器”,全部填完整。
注意:客户端win98环境下,设置DNS时,要设好主机名(即为该客户端的计算机名)
通过内部电话线拨号到代理服务器的IE设置方法
通过内部电话线拨号到代理服务器的IE设置方法如图所示
如何安装使用e-border(可以简化客户端设置)?
服务器上的CCProxy需要启动DNS服务,SOCKS代理,开放SOCKS4协议,客户端网络属性里的TCP/IP要指定DNS地址,指向代理服务器IP地址,然后在客户端安装e-border软件,客户端就不需要再设置代理了,所有客户端网络请求都被e-border转换成SOCKS5请求了。e-border的下载和安装请看图例
《九城单证》使用代理服务器的解决方案
《九城单证》使用代理服务器的解决方案请看图例
网易泡泡的代理设置
具体设置请看图例
客户端通过Outlook Express接收IMAP邮件的设置方法
具体设置请看图例
OkHttp源码解析 (三)——代理和路由
初看OkHttp源码,由于对Address、Route、Proxy、ProxySelector、RouteSelector等理解不够,读源码非常吃力,看了几遍依然对于寻找复用连接、创建连接、连接服务器、连接代理服务器、创建隧道连接等逻辑似懂非懂,本篇决定梳理一遍相关的概念及基本原理。
● HTTP/1.1(HTTPS)
● HTTP/2
● SPDY
一个http请求的流程(直连):
1、输入url及参数;
2、如果是url是域名则解析ip地址,可能对应多个ip,如果没有指定端口,则用默认端口,http请求用80;
3、创建socket,根据ip和端口连接服务器(socket内部会完成3次TCP握手);
4、socket成功连接后,发送http报文数据。
一个https请求的流程(直连):
1、输入url及参数;
2、如果是url是域名则解析ip地址,可能对应多个ip,如果没有指定端口,则用默认端口,https请求用443;
3、创建socket,根据ip和端口连接服务器(socket内部会完成3次TCP握手);
4、socket成功连接后进行TLS握手,可通过java标准款提供的SSLSocket完成;
5、握手成功后,发送https报文数据。
1、分类
● HTTP代理:普通代理、隧道代理
● SOCKS代理:SOCKS4、SOCKS5
2、HTTP代理分类及说明
普通代理
HTTP/1.1 协议的第一部分。其代理过程为:
● client 请求 proxy
● proxy 解析请求获取 origin server 地址
● proxy 向 origin server 转发请求
● proxy 接收 origin server 的响应
● proxy 向 client 转发响应
其中proxy获取目的服务器地址的标准方法是解析 request line 里的 request-URL。因为proxy需要解析报文,因此普通代理无法适用于https,因为报文都是加密的。
隧道代理
通过 Web 代理服务器用隧道方式传输基于 TCP 的协议。
请求包括两个阶段,一是连接(隧道)建立阶段,二是数据通信(请求响应)阶段,数据通信是基于 TCP packet ,代理服务器不会对请求及响应的报文作任何的处理,都是原封不动的转发,因此可以代理 HTTPS请求和响应。
代理过程为:
● client 向 proxy 发送 CONNET 请求(包含了 origin server 的地址)
● proxy 与 origin server 建立 TCP 连接
● proxy 向 client 发送响应
● client 向 proxy 发送请求,proxy 原封不动向 origin server 转发请求,请求数据不做任何封装,为原生 TCP packet.
3、SOCKS代理分类及说明
● SOCKS4:只支持TCP协议(即传输控制协议)
● SOCKS5: 既支持TCP协议又支持UDP协议(即用户数据包协议),还支持各种身份验证机制、服务器端域名解析等。
SOCK4能做到的SOCKS5都可得到,但反过来却不行,比如我们常用的聊天工具QQ在使用代理时就要求用SOCKS5代理,因为它需要使用UDP协议来传输数据。
有了上面的基础知识,下面分析结合源码分析OkHttp路由相关的逻辑。OkHttp用Address来描述与目标服务器建立连接的配置信息,但请求输入的可能是域名,一个域名可能对于多个ip,真正建立连接是其中一个ip,另外,如果设置了代理,客户端是与代理服务器建立直接连接,而不是目标服务器,代理又可能是域名,可能对应多个ip。因此,这里用Route来描述最终选择的路由,即客户端与哪个ip建立连接,是代理还是直连。下面对比下Address及Route的属性,及路由选择器RouteSelector。
描述与目标服务器建立连接所需要的配置信息,包括目标主机名、端口、dns,SocketFactory,如果是https请求,包括TLS相关的SSLSocketFactory 、HostnameVerifier 、CertificatePinner,代理服务器信息Proxy 、ProxySelector 。
Route提供了真正连接服务器所需要的动态信息,明确需要连接的服务器IP地址及代理服务器,一个Address可能会有很多个路由Route供选择(一个DNS对应对个IP)。
Address和Route都是数据对象,没有提供操作方法,OkHttp另外定义了RouteSelector来完成选择的路由的操作。
1、读取代理配置信息:resetNextProxy()
读取代理配置:
● 如果有指定代理(不读取系统配置,在OkHttpClient实例中指定),则只用1个该指定代理;
● 如果没有指定,则读取系统配置的,可能有多个。
2、获取需要尝试的socket地址(目标服务器或者代理服务器):resetNextInetSocketAddress()
结合Address的host和代理,解析要尝试的套接字地址(ip+端口)列表:
● 直连或者SOCK代理, 则用目标服务器的主机名和端口,如果是HTTP代理,则用代理服务器的主机名和端口;
● 如果是SOCK代理,根据目标服务器主机名和端口号创建未解析的套接字地址,列表只有1个地址;
● 如果是直连或HTTP代理,先DNS解析,得到InetAddress列表(没有端口),再创建InetSocketAddress列表(带上端口),InetSocketAddress与InetAddress的区别是前者带端口信息。
3、获取路由列表:next()
选择路由的流程解析:
● 遍历每个代理对象,可能多个,直连的代理对象为Proxy.DIRECT(实际是没有中间代理的);
● 对每个代理获取套接字地址列表;
● 遍历地址列表,创建Route,判断Route如果在路由黑名单中,则添加到失败路由列表,不在黑名单中则添加到待返回的Route列表;
● 如果最后待返回的Route列表为空,即可能所有路由都在黑名单中,实在没有新路由了,则将失败的路由集合返回;
● 传入Route列表创建Selection对象,对象比较简单,就是一个目标路由集合,及读取方法。
为了避免不必要的尝试,OkHttp会把连接失败的路由加入到黑名单中,由RouteDatabase管理,该类比较简单,就是一个失败路由集合。
1、创建Address
Address的创建在RetryAndFollowUpInteceptor里,每次请求会声明一个新的Address及StreamAllocation对象,而StreamAllocation使用Address创建RouteSelector对象,在连接时RouteSelector确定请求的路由。
每个Requst都会构造一个Address对象,构造好了Address对象只是有了与服务器连接的配置信息,但没有确定最终服务器的ip,也没有确定连接的路由。
2、创建RouteSelector
在StreamAllocation声明的同时会声明路由选择器RouteSelector,为一次请求寻找路由。
3、选择可用的路由Route
下面在测试过程跟踪实例对象来理解,分别测试直连和HTTP代理HTTP2请求路由的选择过程:
● 直连请求流程
● HTTP代理HTTPS流程
请求url:
1、构造address对象
2、读取代理配置:resetNextProxy
3、解析目标服务器套接字地址:resetNextInetSocketAddress
4、选择Route创建RealConnection
5、确定协议
测试方法:
● 在PC端打开Charles,设置端口,如何设置代理,网上有教程,比较简单;
● 手机打开WIFI,选择连接的WIFI修改网络,在高级选项中设置中指定了代理服务器,ip为PC的ip,端口是Charles刚设置的端口;
● OkHttpClient不指定代理,发起请求。
1、构造address对象
2、读取代理配置:resetNextProxy
3、解析目标服务器套接字地址:resetNextInetSocketAddress
4、选择Route创建RealConnection
5、创建隧道
由于是代理https请求,需要用到隧道代理。
从图可以看出,建立隧道其实是发送CONNECT请求,header包括字段Proxy-Connection,目标主机名,请求内容类似:
6、确定协议,SSL握手
1、代理可分为HTTP代理和SOCK代理;
2、HTTP代理又分为普通代理和隧道代理;普通代理适合明文传输,即http请求;隧道代理仅转发TCP包,适合加密传输,即https/http2;
3、SOCK代理又分为SOCK4和SOCK5,区别是后者支持UDP传输,适合代理聊天工具如QQ;
4、没有设置代理(OkHttpClient没有指定同时系统也没有设置),客户端直接与目标服务器建立TCP连接;
5、设置了代理,代理http请求时,客户端与代理服务器建立TCP连接,如果代理服务器是域名,则解释代理服务器域名,而目标服务器的域名由代理服务器解析;
6、设置了代理,代理https/http2请求时,客户端与代理服务器建立TCP连接,发送CONNECT请求与代理服务器建立隧道,并进行SSL握手,代理服务器不解析数据,仅转发TCP数据包。
如何正确使用 HTTP proxy
OkHttp3中的代理与路由
HTTP 代理原理及实现(一)
关于javasocks4握手协议和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
关于 包含javasocks4握手协议的词条 的问题,嗨壳技术分享网(www.heikehao.com)小编就分享到这里吧!如果大家有疑问欢迎留言询问。
原创文章,作者:java,如若转载,请注明出处:https://www.heikehao.com/917.html