SSH.Net 隧道
SSH.Net Tunneling
我正在尝试制作 SSH 隧道应用程序。我成功地打开了一个带有动态端口的隧道,它一直有效,直到浏览器建立第一个连接。加载一页后,隧道不再工作,我无法打开下一页,直到我重新启动隧道。有时会出现异常
"Object reference not set to an instance of the object."
"System.NullReferenceException" in Renci.SshNet.dll.
我的代码如下:
SshClient client;
ForwardedPortDynamic port;
public void Start(string server, string user, string password, int serverport=22)
{
client = new SshClient(server, user, password);
client.KeepAliveInterval = new TimeSpan(0, 0, 5);
client.ConnectionInfo.Timeout = new TimeSpan(0, 0, 20);
client.Connect();
if (client.IsConnected)
{
try
{
port = new ForwardedPortDynamic("127.0.0.1", 1080);
client.AddForwardedPort(port);
port.Start();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
public void Stop()
{
port.Stop();
port.Dispose();
client.Disconnect();
client.Dispose();
}
有什么问题吗?你能帮我让我的应用程序工作吗!非常感谢!
解决方案:不要使用 NuGet 中的 SSH.net,使用他们网站上的最新版本,有不同的版本。最后一个效果不错。
我正在尝试制作 SSH 隧道应用程序。我成功地打开了一个带有动态端口的隧道,它一直有效,直到浏览器建立第一个连接。加载一页后,隧道不再工作,我无法打开下一页,直到我重新启动隧道。有时会出现异常
"Object reference not set to an instance of the object." "System.NullReferenceException" in Renci.SshNet.dll.
我的代码如下:
SshClient client;
ForwardedPortDynamic port;
public void Start(string server, string user, string password, int serverport=22)
{
client = new SshClient(server, user, password);
client.KeepAliveInterval = new TimeSpan(0, 0, 5);
client.ConnectionInfo.Timeout = new TimeSpan(0, 0, 20);
client.Connect();
if (client.IsConnected)
{
try
{
port = new ForwardedPortDynamic("127.0.0.1", 1080);
client.AddForwardedPort(port);
port.Start();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
public void Stop()
{
port.Stop();
port.Dispose();
client.Disconnect();
client.Dispose();
}
有什么问题吗?你能帮我让我的应用程序工作吗!非常感谢!
解决方案:不要使用 NuGet 中的 SSH.net,使用他们网站上的最新版本,有不同的版本。最后一个效果不错。