用同一个端口改变ssh隧道方向?

时间:2014-06-02 11:10:07

标签: shell ssh

我使用ssh隧道将端口转发到数据库服务器 让我们说我使用的是mysql,所以我的ssh命令就是这样的。 ssh -fqTN -L 12345:127.0.0.1:3306 user@server.com

基于传输方法(同步或同步)我想使用-L或-R标志。
我最初确实需要-L标志,所以无论如何我打开上面的隧道。

我的问题是 -
如果现在运行 ssh -fqTN -R 12345:127.0.0.1:3306 user@server.com
它会取代上面的命令并在同一个端口上建立反向隧道吗?

1 个答案:

答案 0 :(得分:2)

第二个命令不会“替换”第一个命令,但它可以正常工作。

您开始时:

ssh -fqTN -L 12345:127.0.0.1:3306 user@server.com

这将打开本地系统上的端口12345,并从远程系统的角度将其转发到127.0.0.1:3306,以便您可以使用本地端口{{1}访问远程系统上的mysql服务器}}

第二个命令......

12345

...在远程系统上打开端口 ssh -fqTN -R 12345:127.0.0.1:3306 user@server.com ,并从本地系统的角度将其转发到12345,允许远程系统通过端口127.0.0.1:3306访问本地主机上的mysql服务器。

这与原始命令不冲突,因此这些命令都可以同时运行。

<强>更新

在这里回复你的评论,因为我想引用一些命令输出:

如果我跑:

12345

然后在ssh -R 12345:127.0.0.1:3306 remote_system 我运行remote_system,我看到了:

lsof -i -n

sshd 23280 lars 10u IPv6 37263762 0t0 TCP [::1]:italk (LISTEN) sshd 23280 lars 11u IPv4 37263763 0t0 TCP 127.0.0.1:italk (LISTEN) 开始,我们看到/etc/services是端口italk。如果您将12345添加到-P命令行,则不会尝试将端口号转换为服务名称:

lsof