【问题标题】:Anyone get working FTPS/FTP::TLS Under Ruby 1.9.3?有人在 Ruby 1.9.3 下使用 FTPS/FTP::TLS 吗?
【发布时间】:2013-03-06 22:16:37
【问题描述】:

我已经尝试了几个 gems、examples 等,但无法使其正常工作,更有希望的 gems 是:double-bag-ftpsFTPFXP,我可以连接但我无法传输文件,无论是主动模式还是被动模式..

带有 ftpfxp 的示例代码:

@conn2 = Net::FTPFXPTLS.new
@conn2.passive = true
@conn2.debug_mode = true
@conn2.connect('192.168.0.2', 990)
@conn2.login('myuser2', 'mypass2')
@conn2.chdir('/')
@conn2.get("data.txt")
@conn2.close

双包示例代码:

ftps = DoubleBagFTPS.new
ftps.ssl_context = DoubleBagFTPS.create_ssl_context(:verify_mode => OpenSSL::SSL::VERIFY_NONE)
ftps.connect('192.168.0.2')
ftps.login('myuser2', 'mypass2')
ftps.chdir('/')
ftps.get("data.txt")
ftps.close 

双袋样本错误:

~/.rbenv/versions/1.9.3-p385/lib/ruby/gems/1.9.1/gems/double-bag-ftps-0.1.0/lib/double_bag_ftps.rb:148:in `connect': Broken pipe - SSL_connect (Errno::EPIPE)

ftpfxp 错误示例:

~/.rbenv/versions/1.9.3-p385/lib/ruby/1.9.1/net/ftp.rb:206:in `initialize': No route to host - connect(2) (Errno::EHOSTUNREACH)

有什么不涉及外部命令的推荐吗?

谢谢。

【问题讨论】:

    标签: ruby ssl ftps


    【解决方案1】:

    我已经解决了这个问题,服务器在尝试使用显式 tls 以被动模式连接时返回了一个私有 IP 地址,所以我在 Double-Bag-FTPS 中添加了一行来检查返回的 ip 是否是私有的回退到原来的公网IP地址...

    GitHub Pull request

    所以如果有人有同样的问题,也许这就是答案希望这可以帮助别人:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多