隧道、VPN 隧道和 SSH 隧道之间有什么区别?根据维基百科,“隧道”是指:
隧道通常与 OSI 或 TCP/IP 等分层协议模型形成对比。传输协议通常(但并非总是)在模型中比有效载荷协议运行在更高的级别,或在同一级别。
但这对我来说意义不大。那么像 HTTP 这样的隧道是否用于承载 TCP 负载?
我想,通过一些实际(现实生活中)的例子,所有这些“隧道术语”都会有意义。
答案1
SSH 隧道(主要用作 Socks 代理)仅适用于 TCP 数据包,而 VPN(如OpenVPN
或PPTP
)也能够处理 UDP 数据包。
浏览网页仅使用 TCP,但大多数游戏也使用 UDP。此外,如果使用 VPN,则无需配置每个应用程序以使用 VPN(因为您的操作系统会这样做),但 socks 代理(用于 SSH 隧道)确实需要一些配置。
如果你的应用程序不支持这些协议,那么代理卡可用于强制应用程序使用该 socks 代理。
答案2
使用 vpn,您的计算机将成为另一个网络的一部分。您的计算机与目标网络之间的所有通信都经过加密。您可以直接从您的计算机访问目标网络上的所有计算机。
使用 ssh,您只需连接到另一台主机,但不会成为服务器网络的一部分。
打个比方。假设有一场讨论,但您不在场。有一部电话。您拨打讨论所在的房间。如果远程房间的电话是免提电话,那么每个人都可以听到您的声音,每个人都可以直接与您交谈。这就是 VPN,因为从实际目的来看,您实际上是在场的。
如果电话不支持免提通话,则您每次只能与一个负责传递消息的人通话。这就是 ssh 的类比。
答案3
SSH 隧道仅转发 TCP 连接。VPN 转发 IP 数据包或网络帧。IP 数据包转发 VPN 可以链接 IP 子网(使用所有基于 IP 的协议),网络帧转发(桥接)VPN 可以链接,因此参与者似乎在同一个以太网中。
同样是加密,VPN和SSH隧道在安全性上没有本质区别。
答案4
SSH 隧道
SSH 隧道允许您创建隧道,将所有到主机端口 NNNN 的连接转发到远程主机的端口 22(SSH)。
您可以使用 Autossh 之类的工具来完成此操作(例如:https://www.everythingcli.org/ssh-tunnelling-for-fun-and-profit-autossh/)
在这种情况下,您将发现到主机的单个端口转发规则。您的路由表不会改变,也不会添加任何额外接口。
VPN 隧道
要设置 VPN 隧道,两端的第 3 层接口必须具有逻辑隧道接口,以便防火墙连接并建立 VPN 隧道。隧道接口是用于在两个端点之间传输流量的逻辑(虚拟)接口。这意味着,如果您使用 ipconfig(Windows)/ifconfig(Mac、Linux)查看系统接口,您将看到一个建立连接的新接口。
在 VPN 隧道情况下,路由表将为公司 LAN 提供从默认网关到公司每个子网的多个路由。从默认网关到公司网络将有多个路由。
您可以通过运行命令来找到使用 VPN 客户端设置的路由netstat -nr
。在有和没有 VPN 连接的情况下运行该命令,您将看到路由表的不同。