通过SSH隧道传输数据非常简单:
ssh -D9999 [email protected]
在您的上将端口9999设置localhost
为的隧道example.com
,但我有一个更具体的需求:
localhost
host1
可访问 localhost
host2
仅接受来自 host1
localhost
到的隧道host2
实际上,我想创建一个“多跳” SSH隧道。我怎样才能做到这一点?理想情况下,我想执行此操作而无需成为任何计算机上的超级用户。
您基本上有三种可能性:
从localhost
到的隧道host1
:
ssh -L 9999:host2:1234 -N host1
如上所述,将不会确保从host1
到的连接host2
。
从隧道localhost
到host1
从host1
到host2
:
ssh -L 9999:localhost:9999 host1 ssh -L 9999:localhost:1234 -N host2
这将打开从隧道localhost
到host1
从另一个隧道host1
来host2
。但是9999
to的端口host2:1234
可以由上的任何人使用host1
。这可能是问题,也可能不是问题。
从隧道localhost
到host1
从localhost
到host2
:
ssh -L 9998:host2:22 -N host1
ssh -L 9999:localhost:1234 -N -p 9998 localhost
这将打开一条隧道localhost
,以host1
通过SSH服务上host2
都可以使用。然后,第二条隧道从localhost
到host2
第一条隧道打开。
通常,我会选择选项1。如果需要保护从host1
至的连接host2
,请选择选项2。选项3主要用于访问host2
只能从host2
自身访问的服务。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句