Renci ssh.net无法建立连接,因为目标计算机主动拒绝它

时间:2015-10-19 14:27:31

标签: c# asp.net sftp ssh.net

我们最近将一个项目部署到生产中,并且当我们尝试连接到外部sftp机器时,现在收到此错误消息,“由于目标机器主动拒绝它,因此无法建立连接”。当我开发应用程序并测试它时,我们没有连接到此服务器的问题。有人请向我解释会有什么不同吗?是的我有管理权限,生产服务器上的应用程序池没有。我不确定这可能是导致问题的原因,还是外部客户端服务器上的内容或阻止我们的防火墙。

如果有人可以向我解释这个并解释我如何解决这个问题,我将不胜感激。

提前致谢

3 个答案:

答案 0 :(得分:4)

如果您使用的是localhost,请改为指定127.0.0.1

当我使用SSH.Net并且主机被指定为localhost时,它抛出了主机主动拒绝连接WSAECONNREFUSED - 10061的异常。当我指定127.0.0.1时,可以建立连接。 我认为这是由于SSH.Net中的实现:

    internal static IPAddress GetIPAddress(this string host)
    {
        IPAddress ipAddress;
        if (!IPAddress.TryParse(host, out ipAddress))
            ipAddress = Dns.GetHostAddresses(host).First();

        return ipAddress;
    }

显然,这不能解析localhost的有效主机名。 C#Interactive产生以下结果:

> Console.WriteLine(Dns.GetHostAddresses("localhost").First());
::1

::1似乎不是要使用的套接字的有效IP地址。

答案 1 :(得分:3)

这是标准的TCP错误

WSAECONNREFUSED - 10061

从客户的角度来看,这意味着该地址没有套接字听取该端口' ("积极拒绝"是红鲱鱼)。

i)检查地址 ii)检查端口 iii)检查防火墙

答案 2 :(得分:1)

根据我们丰富的经验(我们提供自己的网络组件) - 它是一个防火墙问题。防火墙不会让您的请求通过。这是一个常见的情况,当你运行说Putty,它的工作原理,但你的代码没有。这是因为许多防火墙检测到众所周知的应用程序并让它们通过,同时阻止其他应用程序。