SSH.NET > 用于端口转发的 SSH 客户端

Posted

技术标签:

【中文标题】SSH.NET > 用于端口转发的 SSH 客户端【英文标题】:SSH.NET > SSH client for port forwarding 【发布时间】:2016-08-22 09:29:32 【问题描述】:

我正在使用 SSH.NET 对 GUI 进行编码以创建与 VPS 的连接。我的目的是做一个代理服务器来玩网络游戏。

我需要动态转发一个端口,创建一个 SOCKS 服务器,然后 Proxifier(我电脑上安装的另一个程序)可以连接到这个服务器。

当我使用 PuTTY 时,Proxifier 运行良好,但当我使用我的软件时,它无法正常工作。

这是我的代码:

using (client = new SshClient("VPS_IP", "USER", "PASSWORD"))

    client.KeepAliveInterval = new TimeSpan(0, 0, 60);

    client.ConnectionInfo.Timeout = new TimeSpan(0, 0, 50);

    port = new ForwardedPortDynamic("127.0.0.1", portNumber);
    client.Connect();
    client.AddForwardedPort(port);

    port.Start();

    if (client.IsConnected && port.IsStarted)
    
        MessageBox.Show("Connected");
    

    System.Threading.Thread.Sleep(20 * 1000);

现在,Proxifier 的日志

[48:51] Testing Started.
Proxy Server
Address:    127.0.0.1:port
Protocol:   SOCKS 5
Authentication: NO

[48:51] Starting: Test 1: Connection to the Proxy Server
[48:51] IP Address: 127.0.0.1
[48:51] Connection established
[48:51] Test passed.
[48:51] Starting: Test 2: Connection through the Proxy Server
[48:51] Authentication was successful.
[48:51] Error : connection to the proxy server was closed unexpectedly.
[48:51] Test failed.
[48:51] Testing Finished.

【问题讨论】:

【参考方案1】:

要调试转发端口的问题,首先要处理ForwardedPort.Exception 事件。

一旦您发现引发了什么异常(如果有),我们可以进一步帮助您。

【讨论】:

以上是关于SSH.NET > 用于端口转发的 SSH 客户端的主要内容,如果未能解决你的问题,请参考以下文章

通过 SSH.NET c# 库转发 x11

SSH原理与运用:远程操作与端口转发

通过安全连接使用 Redis

原创Linux基础之SSH隧道/端口转发

ssh隧道 学习总结

[原创]SSH 隧道转发