我正在使用Granados SSH库,我正在尝试将本地主机上的端口3306转发到远程主机(即MySQL服务器端口)上的端口3306。也就是说,我希望能够通过SSH隧道连接到远程主机的MySQL服务器。
以下是我目前尝试使用Granada .NET SSH库但但似乎不起作用的示例:
public SSHConnection _conn;
_conn.ListenForwardedPort("localhost", 3306); //doesn't work
有人可以告诉我如何实现我的目标吗?
答案 0 :(得分:2)
你的术语倒退了!您要做的是将从隧道隧道传输到远程系统。这是因为远程系统是TCP 服务器,因此在本地系统上启动连接并在远程系统上接受。 ListenForwardedPort
方法适用于另一个方向。
我没有对此进行测试,但是从我对Granados源代码的阅读中我认为您需要使用ForwardPort
方法。这需要四个与主机相关的参数:
remote_host
:服务器上的主机,即您的MySQL服务器remote_port
:服务器正在侦听的端口,即3306 originator_host
:您想要在本地收听的主持人,可能是“localhost”originator_port
:您要在本地连接的主机端口,您可以重新使用3306或选择任何其他可用号码您的MySQL服务器remote_host
可能是“localhost”(如SSH连接的另一个端点所示),但它也可以是远程系统可以访问的任何计算机。您还可以使用远程系统的IP地址,即localhost或127.0.0.1以外的其他名称。