什么是隧道(ssh隧道和ppp隧道)

时间:2009-03-30 08:43:05

标签: networking

什么是隧道(ssh隧道和ppp隧道)?我在谷歌搜索,但它很混乱..任何人都可以提供一些关于这个隧道主题的好材料吗?

5 个答案:

答案 0 :(得分:21)

嗯,基本上你有3台机器:

  • A 您的计算机
  • B 服务器
  • C 远程计算机

基本隧道将是 A 的端口X上的任何通信被 B 转发到 C 的端口Y. 即而不是 A C ,您有 A B C 。因此,对于机器 C ,通信似乎来自 B ,而不是 A 。如果 C 的防火墙不允许来自 A (例如,受限制的地区)的连接,则非常有用。例如:

ssh -L8080:www.example.com:80 your.server

从您的计算机访问localhost:8080,您实际上是从www.example.com:80访问your.server


其他类型的隧道将是:

  • 本地网络计算机
  • B 服务器

您在服务器 B 上打开端口X,该端口上的任何通信都会转发到本地计算机上的端口Y A 。如果您在NAT /防火墙后面有用。例如:

ssh -R8080:192.168.1.1:80 your.server

访问your.server:8080的任何人实际上都在您的本地网络中访问192.168.1.1:80

答案 1 :(得分:7)

隧道是指通过encapsulation而不是直接通过您在另一个(通常是加密的)连接内发送的网络发送数据包。在SSH隧道的情况下,TCP / IP数据包在SSH连接内发送到另一个主机,然后主机决定如何处理这些数据包(通常转发到内部网络)。

维基百科article about Tunnelling很有帮助,但为了更好地理解它,你应该对封装和OSI model的工作方式有一个基本的了解。

答案 2 :(得分:4)

Tunneling是一个通用术语,指的是将一种协议封装在另一种协议中。

通常TCP / IP通过较低级别的传输(例如以太网)传输。但是,可以使用更高级别的协议(例如SSH)作为传输TCP / IP的基础。

这意味着协议是嵌套的:

  • (本机)TCP / IP传输SSH
  • SSH传输(隧道)TCP / IP

这一开始可能看起来毫无用处和复杂,但允许人们使用较低级别的协议(例如TCP / IP)来利用高级协议(例如SSH加密)的优势。

请注意,VPNs通常使用某种隧道方式实现。

答案 3 :(得分:2)

根据我的理解,SSH隧道是一种使用远程计算机的互联网连接的方式,就像代理一样。

基本上,您在基本计算机上有一个网络连接,并且您使用所述连接通过SSH隧道连接到远程计算机。现在,它不是直接进入您的计算机的网络流量,而是首先通过远程计算机。您的计算机将认为所有网络流量来自一个连接(远程计算机),而不是通常的许多连接。

答案 4 :(得分:0)

什么是隧道(ssh隧道和PPP隧道)?我在谷歌搜索,但它很混乱..任何人都可以提供一些关于这个隧道主题的好材料吗?

首先要了解有关数据包封装的隧道知识。

可以将数据包封装在另一个数据包中以发送到另一个协议或OSI级别。例如,您与此网站的连接是一个HTTP请求,它将被转换为TCP连接,然后TCP数据包将被封装在IP数据包中,依此类推。

到处都是你的身边。 再举一个例子,当您从智能手机浏览时,您的HTTP请求被封装到IP包中,并且它们被封装在WiFi 802.11帧中。 它就像俄罗斯娃娃,其中一个将在另一个内部,并且可能有许多其他人。

您可以查看here以获取SSH隧道示例,以及如何使用它来代理从本地PC到远程服务器的流量。

了解封装的最佳方法是首先阅读有关OSI模型的内容。