我使用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
它会取代上面的命令并在同一个端口上建立反向隧道吗?
答案 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