首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复:由于意外的数据包格式导致握手失败?

如何修复:由于意外的数据包格式导致握手失败?
EN

Stack Overflow用户
提问于 2010-03-17 01:50:02
回答 1查看 25.5K关注 0票数 5

我正在从Windows Server2008FTP连接到运行vsFTPd 2.0.7的Linux R2服务器。我正在通过SSL连接。

下面是它失败的代码行:

代码语言:javascript
复制
sslStream = new SslStream(stream, false, CertificateValidation);

日志如下:

代码语言:javascript
复制
220 (vsFTPd 2.0.7)
AUTH SSL
234 Proceed with negotiation.

我收到以下错误:

代码语言:javascript
复制
System.IO.IOException: The handshake failed due to an unexpected packet format.
   at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
   at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
   at KellermanSoftware.NetFtpLibrary.ProxySocket.InitSsl()
   at KellermanSoftware.NetFtpLibrary.FTP.Connect(Boolean implicitConnection)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-17 01:54:49

从我的google搜索来看,这似乎是vsftpd的一个常见问题。

http://www.question-defense.com/2010/02/04/vsftpd-error-gnutls-error-9-a-tls-packet-with-unexpected-length-was-received

你可以从那篇文章中找到解决方案的提示。

它可以归结为:

为TLS/SSL)

  • Verifying配置vsftpd (使用显式necessary

  • modify的文件传输协议您将生成一个证书,或者,如果使用necessary
  • modify vsftpd.conf,则生成一个证书以允许ftpes vsftpd使更改生效
  • 验证您正在运行最新版本,并在必要时进行升级

更新

要检查的其他内容是:http://ftps.codeplex.com/Thread/View.aspx?ThreadId=63605该线程使用以下代码块示例讨论隐式模式和显式模式之间的差异:

代码语言:javascript
复制
private Stream GetDataStream()
{
    Stream s = null;

    if (SslSupportCurrentMode == ESSLSupportMode.Implicit)
    {
        s = dataClient.GetStream();
    }
    else if ((sslSupportCurrentMode & ESSLSupportMode.DataChannelRequested) == ESSLSupportMode.DataChannelRequested)
    {
        if (dataSslStream == null)
            dataSslStream = CreateSSlStream(dataClient.GetStream(), false);
        s = dataSslStream;
    }
    else
    {
        s = dataClient.GetStream();
    }

    return s;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2456786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档