代码之家  ›  专栏  ›  技术社区  ›  IniTech

可以通过filezilla而不是从代码显式地传递ftps

  •  1
  • IniTech  · 技术社区  · 14 年前

    正如标题所述,我可以通过FileZilla客户机从我的服务器连接到另一台机器,但我不能通过代码(.net-ftpwebrequest)连接到另一台机器。

    我知道代码是好的,因为它从另一台机器工作。我遇到问题的那台机器在一个NAT后面,但是SA已经打开了所有的端口来接收我们正试图联系的主机的流量。

    有什么建议吗?我错过了一些明显的东西吗?

    我从尝试的连接中得到的异常是:

    “无法从 传输连接:连接 尝试失败,因为连接 一方在 一段时间,或确定的时间 连接失败,因为已连接 主机无法响应。“

    而且,我们尝试连接的机器的日志显示:

    2010年7月26日下午12:40:23——(非 已登录)(xx.xx.xxx.xxx)>已连接, 正在发送欢迎消息…

    2010年7月26日下午12:40:23——(非 登录)(xx.xx.xxx.xxx)> 220 FileZilla服务器版本0.9.32 贝塔

    2010年7月26日下午12:40:23——(非 已登录)(xx.xx.xxx.xxx)>220 ftp.xxxxxxx.com网站

    2010年7月26日下午12:40:23——(非 已登录)(xx.xx.xxx.xxx)>身份验证TLS

    2010年7月26日下午12:40:24——(非 登录)(xx.xx.xxx.xxx)>234使用 身份验证类型TLS

    2010年7月26日下午12:41:24——(非 已登录)(xx.xx.xxx.xxx)>421登录 超过时间。关闭控制 连接。

    2010年7月26日下午12:41:24——(非 登录)(xx.xx.xxx.xxx)> 断开的。

    3 回复  |  直到 10 年前
        1
  •  1
  •   IniTech    14 年前

    抱歉,我忘记带着我的解决方案回来了——它是隐式的还是显式的SSL。我使用的是隐式的FileZilla用例,但是显式的是ftpWebRequest。不幸的是,ftpWebRequest不支持隐式,而nat在显式方面存在问题。

    长话短说,我们使用了一个称为 Alex FTPS client 这很容易用于隐式或显式的SSL,易于设置,并且工作无误。

        2
  •  0
  •   Nickolay Olshevsky    14 年前

    可能是证书有问题,服务器在TLS/SSL协商过程中发送证书,即操作系统不接受证书,等等。 尝试运行wireshark来检查哪些数据实际上是在客户机和服务器之间发送的。

        3
  •  0
  •   IniTech    10 年前
    Dim auth = New System.Net.NetworkCredential(userName, password)
    sRet = ftps.Connect(sAddress, 990, auth, ESSLSupportMode.Implicit, AddressOf UF.ValidateServerCertificate, Nothing, 0, 0, 0, 600000, True