|
|
如果您的机器具有一个合法的 Internet IP 地址, 或者您利用自己机器
P6 \; R. A; R* J% X上的调制解调器拨号上网, 可以自由和 Internet 上任何主机沟通, 那么您 + K5 A' K- y' a9 q' O. F; N( U
通常不必关心 SOCKS5 协议。
* y) \: ^5 j q; I! H: l$ t N# q' X3 h
SOCKS5 协议对于处在内部网络中的机器, 需要透过网络中某些可以联通 / J$ q$ I" W) o8 J1 Q
外部 Internet 的机器访问外部时,有用。 9 j9 q- h& w6 c. @
* _6 c* m# h) b1 w- r, i
SOCKS5 是一个代理协议,它在使用 TCP/IP协议通讯的前端机器和服务器
& P0 K" Q6 U2 z6 O0 V! }( a3 c机器之间扮演一个中介角色,使得内部网中的前端机器变得能够访问Internet
2 \) o! W+ I# U+ v6 l2 O1 {" S3 W网中的服务器,或者使通讯更加安全。
v( I) o' [. W, G
" E' O# t8 G. v8 y7 s- C, aSOCKS5 服务器通过将前端发来的请求转发给真正的目标服务器, 模拟了 5 Q2 ~. O$ v' t+ m9 G5 O4 R
一个前端的行为。在这里,前端和SOCKS5之间也是通过TCP/IP协议进行通讯,
4 {" A& \5 z& L( G前端将原本要发送给真正服务器的请求发送给SOCKS5服务器,然后SOCKS5服务 " j) n# a( b( {5 b
器将请求转发给真正的服务器。SOCKS5服务器在将通讯请求发送给真正服务器 & ^! ^% _3 j5 M7 Y7 Y
的过程中,对于请求数据包本身不加任何改变。SOCKS5服务器接收到真正服务 ! }* Z0 i B3 H# j$ t! J
器的响应后,也原样转发给前端。 2 z5 z1 I+ f+ U X+ h! `
, x- R# |! C" E. ?0 h! z因此,SOCKS5 协议是一种代理协议,对于各种基于 TCP/IP的应用层协议 6 ^, u6 f2 I$ g: E6 L3 S- s8 d
都能够适应,几乎是万能的。它虽然不能理解自己转发的数据的内部结构,但 , w: |4 u4 K( ^ H" }
是它能够忠实地转发通讯包,完成协议本来要完成的功能。 2 u, p u' c0 P! J ~
c. D6 E, p- b0 u
与SOCKS5协议不同,HTTP代理是通过HTTP协议进行的,HTTP代理服务器软
9 o9 T- M# M3 T. t# L) A件了解通讯包的内部结构,在转发过程中还要对通讯进行某种程序的修改和转 + `9 d0 z9 }& i
换。和HTTP代理协议不同,SOCKS5实际上是一个传输层的代理协议。 0 T) l5 r6 Z Y3 P8 {$ I7 J
+ l- M- C2 w. I4 A6 B3 V) p: n4 H ^
我们可以想象,如果每个具体的应用层协议都要设计对应的代理协议表达 * R3 a0 U$ o8 `/ E
办法,一个特定的代理服务器无论如何也支持不过来那么多新出现的协议。因
) L3 y( A$ _" \/ \2 u$ J' ]此,可以说SOCKS5的出现缓解了各种具体协议需要专门设计代理协议的困难局
* G8 ^, m' ~! O( l$ T面。
' D' m1 P0 G7 l9 ~$ j3 }
3 [! A+ u0 ~7 }8 _; J1 l; F B不过,并不是凡是使用基于TCP/IP协议的应用协议的软件,都可以无条件
9 g, S% A: m }, |地透过SOCKS5服务器进行通讯,还要求前端软件本身具有SOCKS5的接口,才能
8 Z p x+ X% \4 v5 b- L2 ]- }7 l/ q利用SOCKS5代理服务器。
6 E }) D3 T/ T% {4 _, Y* s2 `
m! I: [& |* {2 r4 j. m* {, R一个支持SOCKS5协议的前端,通常具有两种运行状态:
' O/ }$ ]# Q! T) L* y1)直接通讯状态,不使用SOCKS5接口。这时的通讯是针对最终服务器进行
8 }- y& H9 f1 W$ v; M& _5 Z的。 4 D+ l7 b5 h# ]3 w$ X
$ G" w* {$ v7 [0 H6 e
2)SOCKS5 状态。 使用 SOCKS5 接口将本来要发送给最终服务器的请求发
" }- n; D( M# t! j! ?. S9 ^送给 SOCKS5 服务器。在前端和 SOCKS5 服务器进行初始化会话的时候,前端
$ G& q, r, l% \" N; @ l* G告诉了 SOCKS5 服务器关于最终服务器的 IP 地址和端口信息,所以 SOCKS5 ' g; R. W' v4 h- f4 ]$ o
服务器能够忠实按照前端的要求启动和最终服务器的通讯过程。 |
|