tunnel,
计算机网络使用tunnel协议,当一个
网络协议(
传输协议)封装不同的
有效载荷协议。通过使用tunnel1(例如)进行了一个不兼容的交付网络的有效载荷,或通过一个不受信任的网络提供一个安全的路径。
tunnelOSI或TCP / IP分层协议模型如那些通常对比。传递协议通常(但不总是)在更高层次的模型相比,
有效载荷的协议,或在同一水平。
通过
网络层的一个例子,
通用路由封装(GRE),在
IP上运行的协议(IP协议号 47),往往是进行IP
数据包,在使用公共互联网传递数据包
RFC 1918私有地址,
IP地址。在这种情况下,交付和有效载荷协议是兼容的,但有效载荷与交付网络的地址是
不相容的。
相反,一个IP有效载荷可能相信它看到一个
数据链路层传递,当它内部进行的第2层
隧道协议(
L2TP)“,这似乎作为协议的
有效载荷数据链路层机制。L2TP协议,然而,实际运行过使用
运输层的用户数据 报协议(
UDP),通过IP。供货协议的IP地址,可以运行在任何数据链路协议
IEEE 802.2与IEEE 802.3标准(即,基于标准的
以太网)点的
点对点协议(
PPP)的
拨号调制解调器连接。
tunnel协议可以使用数据加密传输过不安全的公共网络(如Internet)的有效载荷协议,从而提供
VPN功能。
IPSec有一个终端到终端的
运输方式,但也可以在
隧道模式下操作,通过一个值得信赖的
安全网关。
用户还可以使用隧道通过“防火墙”偷渡,使用的协议,防火墙通常会阻止,但“包装”内部防火墙不会阻止例如,
HTTP协议。如果防火墙策略并没有明确排除这一种“包装”,这一招可以发挥预期的防火墙政策得到解决。
另一种基于
HTTP隧道的方法,使用HTTP CONNECT方法/命令。客户端发出的HTTP连接
HTTP代理的命令。代理,然后以一个特定的服务器的
TCP连接埠,该服务器之间的中继数据端口和客户端连接。因为这将创建一个
安全漏洞,能够连接HTTP代理通常限制CONNECT方法的访问。代理只允许访问的具体授权服务器
白名单。
安全shell(
SSH)隧道由创建一个加密的隧道通过SSH协议连接。用户可以设置
SSH隧道传输加密在网络上的流量通过加密通道。例如,
Microsoft Windows机器可以使用服务器消息块(
SMB)协议,非
加密协议共享文件。如果一个人安装一个Microsoft Windows
文件系统,通过互联网
远程连接上,有人窥探,可以看到传输的文件。要安装Windows的文件
系统安全,可以建立一个SSH隧道通过加密通道路由到远程
文件服务器的所有SMB流量。虽然
SMB协议本身不包含任何加密,加密的SSH通道,通过它传播提供安全。
SSH隧道提供了一种方法来绕过防火墙,禁止某些
互联网服务-只要一个站点允许传出连接。例如,组织可能会禁止用户
直接访问互联网网页(端口80),没有通过组织的代理筛选器(提供组织监测和控制哪些用户通过网络看到的一种手段)。但是,用户可能不希望有自己的
网站流量监视或阻止由该组织的代理筛选器。如果用户可以连接到外部的SSH 服务器,他们可以自己
本地机器上的一个特定的
端口转发到端口80远程
Web服务器上创建一个SSH隧道。访问远程Web服务器,用户将他们的浏览器指向到本地端口从http://
localhost/。
一些
SSH客户端支持动态端口转发,允许用户创建一个
SOCKS 4/5代理。在这种情况下,用户可以配置自己的
应用程序来使用他们的本地SOCKS
代理服务器。这给人以上如前所述到一个单一的端口建立一个SSH隧道的灵活性。SOCKS可以释放用户只连接到一个预定义的远程端口和服务器的限制。如果应用程序不支持SOCKS,可以使用“socksifier”重定向到本地SOCKS代理服务器的应用。一些“socksifiers”支持
SSH直接,从而避免需要一个
SSH客户端。