zoukankan      html  css  js  c++  java
  • SSH 本地端口转发

      有时,绑定本地端口还不够,还必须指定数据传送的目标主机,从而形成点对点的"端口转发"。为了区别后文的"远程端口转发",我们把这种情况称为"本地端口转发"(Local forwarding)。

      假定host1是本地主机,host2是远程主机。由于种种原因,这两台主机之间无法连通。但是,另外还有一台host3,可以同时连通前面两台主机。因此,很自然的想法就是,通过host3,将host1连上host2。

      我们在host1执行下面的命令:

    $ ssh -L 2121:host2:21 host3

      命令中的L参数一共接受三个值,分别是"本地端口:目标主机:目标主机端口",它们之间用冒号分隔。这条命令的意思,就是指定SSH绑定本地端口2121,然后指定host3将所有的数据,转发到目标主机host2的21端口(假定host2运行FTP,默认端口为21)。

      这样一来,我们只要连接host1的2121端口,就等于连上了host2的21端口。

    $ ftp localhost:2121

      "本地端口转发"使得host1和host3之间仿佛形成一个数据传输的秘密隧道,因此又被称为"SSH隧道"。

    下面是一个比较有趣的例子。

    $ ssh -L 5900:localhost:5900 host3  

      它表示将本机的5900端口绑定host3的5900端口(这里的localhost指的是host3,因为目标主机是相对host3而言的)。

      另一个例子是通过host3的端口转发,ssh登录host2。

    $ ssh -L 9001:host2:22 host3

      这时,只要ssh登录本机的9001端口,就相当于登录host2了。

    $ ssh -p 9001 localhost

      上面的-p参数表示指定登录端口。

  • 相关阅读:
    Test SLURM
    PGM_Foundations
    PGM-Introduction
    Functional Analysis-Metric Space
    Introduction to Machine Learning
    Time Series Analysis
    Solving Puzzles With HHT From a Engineering Perspective
    Docker-3:Data Volume
    Docker-2:network containers
    Docker-1
  • 原文地址:https://www.cnblogs.com/hopkings/p/6442057.html
Copyright © 2011-2022 走看看