本页使用了标题或全文手工转换

隧道协议

维基百科,自由的百科全书
(重定向自穿隧協議
跳转至: 导航搜索

隧道协议英语:Tunneling Protocol[1]是一种网络协议,在其中,使用一种网络协议(发送协议),将另一个不同的网络协议,封装在负载部分。使用隧道的原因是在不兼容的网络上传输数据,或在不安全网络上提供一个安全路径。

隧道则是对比分层式的模型,如OSI模型TCP/IP。隧道协议通常(但并非总是)在一个比负载协议还高的层级,或同一层。要了解协议堆栈,负载和发送协议都须了解。传统的分层式协议,如OSI模型TCP/IP模型,HTTP协议 ,并不被认为是隧道协议。

通用路由封装是一种跑在 IP (IP 号码为 47)的协议,身为网络层上的网络层的例子,通常是用带有公开地址的 IP 数据包来携带带有 RFC 1918 私用地址的 IP 数据包来穿越互联网。在此例上,发送和负载协议是兼容的,但负载地址和发送网络是不兼容的。

隧道协议可能使用数据加密来发送不安全的负载协议。

常见隧道协议[编辑]

SSH[编辑]

SSH 隧道可以通过加密频道将明文流量导入隧道中。为了创建 SSH 隧道, SSH 客户端要设置并转交一个特定本地端口号到远程机器上。一旦 SSH 隧道创建,用户可以连到指定的本地端口号以访问网络服务。本地端口号不用与远地端口号一样。

SSH 隧道提供一个绕过防火墙,从而连到某些被禁止的互联网服务的的方法。例如,一个组织可能会禁止用户不通过组织的代理服务器过滤器,而直接访问网页(端口号 80 ),用于监视或控视用户浏览网页。用户可能不希望让他们的网页流量被组织的代理服务器过滤器所监控或阻挡。如果用户能连到一个外部的 SSH 服务器,就有可能创建 SSH 通道,将某个本地端端口号连到远程网页服务器的端口号:80 。要连到远程网页服务器,用户可以将他们的网页浏覧器指到http://localhost/。

有些 SSH 客户端支持动态端口发送,允许用户创建SOCKS代理服务器。用户可以设置他的应用程序去使用他们的区域 SOCKS 代理服务器。这比创建一个连到单一端口号的 SSH 隧道更有弹性。使用 SOCKS ,用户可以不被限制只能连到事先定义的端口号和服务器。

作用[编辑]

规避防火墙[编辑]

一个被防火墙阻挡的协议可被包在另一个没被防火墙阻挡的协议里,如超文本传输协议。如果防火墙并没有排除此种包装,这技巧可用来逃避防火墙政策。

另一种基于 HTTP 的穿隧方法使用超文本传输协议CONNECT 方法:

客户端提交 HTTP 的 CONNECT 命令给代理服务器,代理服务器会建一个 TCP 连接到特定的 服务器端口,并转送服务器端口和客户端连接之间的数据。因为这会制造安全漏洞,HTTP 代理服务器通常会限制 CONNECT 命令。通常只允许基于 TLS/SSL 的 HTTPS 服务。

另见[编辑]

参考资料[编辑]

  1. ^ Tunneling在台湾译为“穿隧”VPN 虚拟私有网络技术概说
  2. ^ IP Encapsulation within IP,RFC2003, C. Perkins,October 1996
  3. ^ Layer Two Tunneling Protocol "L2TP",RFC 2661, W. Townsley et al.,August 1999
  4. ^ Point-to-Point Tunneling Protocol (PPTP),RFC 2637, K. Hamzeh et al.,July 1999

外部链接[编辑]

本条目部分或全部内容出自以GFDL授权发布的《自由在线电脑词典》(FOLDOC)。