如何使用带有C#的Granados通过SSH隧道转发端口
本文关键字:隧道 SSH 转发 通过 Granados 何使用 | 更新日期: 2023-09-27 17:59:32
我正在使用Granados SSH库,并试图将本地主机上的端口3306转发到远程主机上的港口3306(即MySQL服务器端口)。也就是说,我希望能够通过SSH隧道连接到远程主机的MySQL服务器。
以下是我目前尝试使用Granada.NET SSH库但似乎不起作用的示例:
public SSHConnection _conn;
_conn.ListenForwardedPort("localhost", 3306); //doesn't work
有人能告诉我怎样才能实现我想要的吗?
您的术语倒退了!您要做的是从本地机器到远程系统的隧道。这是因为远程系统是TCP服务器,因此在本地系统上启动连接并在远程系统上接受连接。ListenForwardedPort
方法用于另一个方向。
我没有对此进行测试,但从我对Granados源代码的阅读来看,我认为您需要ForwardPort
方法。它需要四个与主机相关的参数,如下所示:
remote_host
:带有服务器的主机,即您的MySQL服务器remote_port
:服务器监听的端口,即3306originator_host
:您想在本地端侦听的主机,可能是"localhost"originator_port
:您想在本地连接到的主机的端口,您可以重复使用3306或选择任何其他可用的号码
您的MySQL服务器remote_host
可能是"localhost"(SSH连接的另一个端点可以看到),但它也可以是远程系统可以访问的任何机器。您还可以使用远程系统的IP地址,即localhost或127.0.0.1以外的地址。