“本地端口转发”和“动态端口转发”之间的区别?


14

我试图了解“本地端口转发”和“动态端口转发”之间的区别。

在用于“本地端口转发”的ssh命令中,是否始终需要指定目标主机?

“动态端口转发”中的“动态”是否意味着在用于“动态端口转发”的ssh命令中,无需指定目标主机?如果是,何时指定目的地?


Answers:


15

是的,使用本地转发时必须指定目标IP和端口。来自man ssh

 -L [bind_address:]port:host:hostport
         Specifies that the given port on the local (client) host is to be
         forwarded to the given host and port on the remote side.

显然,只有绑定地址是可选的。

不,使用动态转发时无法指定目标主机或端口。在动态转发中,SSH充当SOCKS代理。再次从联机帮助页(强调我的):


 -D [bind_address:]port
         Specifies a local “dynamic” application-level port forwarding.
         This works by allocating a socket to listen to port on the local
         side, optionally bound to the specified bind_address.  Whenever a
         connection is made to this port, the connection is forwarded over
         the secure channel, and the application protocol is then used to
         determine where to connect to from the remote machine.  Currently
         the SOCKS4 and SOCKS5 protocols are supported, and ssh will act
         as a SOCKS server.

使用-L,SSH不会尝试了解流量。它只是将在本地端口上接收到的所有内容发送到目标端口-您在建立连接时确定目标端口。使用时-D,SSH充当代理服务器,因此可以处理来自多个端口的连接(例如,配置为将其用作SOCKS代理的浏览器可以通过同一连接访问HTTP,HTTPS,FTP等)。与其他代理服务器一样,它将使用流量来确定目的地。


1
谢谢,老师!我想知道为什么动态转发被称为代理,而本地转发却不被称为代理?根据定义,本地转发中的ssh服务器,ssh客户端或两者都是代理(服务器)吗?unix.stackexchange.com/a/234184/674
Tim

1
@Tim代理服务器了解它正在代理的协议。端口转发,SSH没有试图了解什么协议来它的方式,但是-D,它具有对,以了解在哪里发送数据。
muru 2015年

谢谢。我在一些计算机网络教科书(例如Tanenbaum的教科书)中搜索了与您一样清晰的代理(服务器)的定义,但并不满意。您是否有一些推荐书籍来学习概念?
蒂姆(Tim)

在动态端口转发中,代理服务器,ssh客户端,ssh服务器或两者是哪个?
蒂姆(Tim)

@Tim Tanenbaum的书是我学习的唯一一本书。其余的来自使用事物。
muru 2015年

0

学习此概念的另一种方法是查看客户端如何连接到亚马逊的弹性地图缩小(EMR)集群。EMR公开了很多本地应用程序,这些应用程序通常可以通过SSH隧道访问。

客户端有2个选项:A)本地端口转发SSH命令:ssh -i key.pem -L 8157:abcd:8088 hadoop @ abcd

例如,这里的客户端说,本地主机上的8157被转发到abcd:8088客户端必须向本地主机发出请求: http:// localhost:8157 其他应用程序可能正在监听8089,8090等端口,并且客户端必须为每个连接建立ssh连接。

B)动态端口转发这里使用单个SSH命令:ssh -i key.pem -D 8157 hadoop @ abcd

端口8157上流入的所有流量都将通过ssh隧道进行路由。流量的目的地将是URL的目的地。例如,您可以在Web服务器上使用代理客户端,并重定向一些http URI以使用代理。您可以通过单个命令访问8089,8090上的所有应用程序。

作为参考,请参阅以下文档:https : //docs.aws.amazon.com/emr/latest/ManagementGuide/emr-web-interfaces.html

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.