ssh端口转发语法解释

ssh port forwarding syntax explanation

我正在继承一些 devops 代码,其中有一些端口转发调用如下:

server = 180.10.0.1   # fake  IP
ssh ubuntu@' + server + ' -L2222:localhost:2222 -L 27017:some_docker.amazonaws.com:27017'

我真的很难弄清楚这里发生了什么。因此,据我所知,端口 2222server 上的流量被重定向到本地计算机上的端口 2222。但是,我不确定 server 上 docker 图像 运行 的端口 27017 发生了什么。是否被重定向到主机的 27017 端口?

端口 27017 被转发到 mongo/document 数据库主机。这样做是为了使 mongo 驱动程序能够与远程数据库对话。

-左端口:host:hostport

在本地机器上打开一个侦听套接字(其中 ssh 命令已经 运行 开启)。如果连接打开,它会将其隧道传输到远程端并连接到 host:hostport。所以2222是f.e。只监听远程机器上的本地主机。使用此隧道,您可以从本地计算机通过端口 (2222) 连接到它,即使远程计算机上的套接字仅在本地主机上侦听(例如)。 第二部分类似,只是host:hostport是不同的机器,即f.e。只能从您通过 SSH 连接到的主机访问:

A --[ssh]-->B--->C

查看联机帮助页:https://linux.die.net/man/1/ssh