范德萨发而为
全部博文(392)
分类:
2010-01-13 17:08:41
穿隧协议(Tunneling Protocol)是用于描述当一个称作负载协议的是封装在另一种不同的传送协议中。使用隧道的原因包含在一不相容的传送网络上携带负载,或在不安全网络上提供一个安全路径。
穿隧则是对比于分层式的模型,如或。穿隧协议通常(但并非总是)在一个比负载协议还高的层级,或同一层。要了解协议堆栈,负载和传送协议都须了解。如果协议封装是借由传统的分层式协议如或所完成的,如在 V.92 调制解调器上的 PPP 上的 IP 上的 TCP 上的 HTTP ,并不被认为是穿隧。
是一种跑在 IP (IP 号码为 47)的协议,身为网络层上的网络层的例子,通常是用带有公开位址的 IP 封包来携带带有 私用位址的 IP 封包来穿越互联网。在此例上,传送和负载协议是相容的,但负载位址和传送网络是不相容的。
穿隧协议可能使用资料加密来传送不安全的负载协议。
SSH 隧道是一种借由连线所建立的加密隧道。 SSH 隧道可以用来将流量导入隧道中,通过频道。
为了建立 SSH 隧道, SSH 客户端可以设定要转交一个特定本地埠号到远端机器上的埠号。一旦 SSH 隧道建立,使用者可以连到指定的本地埠号以存取网络服务。本地埠号不用与远地埠号一样。
SSH 隧道提供一个绕过防火墙从而连到某些被禁止的互联网服务的的方法。例如,一个组织可能会禁止使用者直接存取网页(埠号 80 )而没有通过组织的代理服务器过滤器,如此组织才能监视或控视使用者浏覧网页。使用者可能不希望让他们的网页流量被组织的代理服务器过滤器所监控或阻挡。 如果使用者能连到一个外部的 SSH 服务器,对他们而言是有可能建立 SSH 通道,将某个本地端埠号连到以传送到远端网页服务器的埠号 80 是有可能的。要连到远端网页服务器,使用者可以将他们的指到。
有些 SSH 客户端支持动态埠传送,允许使用者建立代理服务器。使用者可以设定他的应用程式去使用他们的区域 SOCKS 代理服务器。这比建立一个连到单一埠号的 SSH 隧道更有弹性。使用 SOCKS ,使用者可以不被限制只能连到事先定义的埠号和服务器。
穿隧可用来溜过防火墙。一个被防火墙阻挡的协议可被包在另一个没被防火墙阻挡的协议里,如。如果防火墙并没有排除此种包装,这技巧可用来逃避防火墙政策。
另一种基于 HTTP 的穿隧方法使用的 CONNECT 方法。 客户端送出 HTTP 的 CONNECT 命令给代理服务器,代理服务器会建一个 TCP 连线到特定的 服务器:埠,并转送 服务器:埠 和客户端连线之间的资料。因为这会制告安全漏洞,容许 CONNECT 的 HTTP 代理服务器通常会限制 CONNECT 命令。通常只允许基于 TLS/SSL 的 HTTPS 服务。
摘自wiki