【问题标题】:Using FTP Proxy with apache commons-net将 FTP 代理与 apache commons-net 一起使用
【发布时间】:2010-11-09 09:38:11
【问题描述】:

我想通过 Apache 的 commons-net 使用代理服务器建立 FTP 连接。

但是看着这个Does FTPClient support FTP connections through an FTP proxy server? 让我很担心。

我必须干预系统属性,Sun 文档声明“如果指定了 socksProxyHost,则所有 TCP 套接字都将使用 SOCKS 代理服务器建立连接或接受一个连接。”
什么?所有 TCP 套接字?我的数据库连接呢?或者我可能想在不使用代理的情况下同时打开其他 FTP 连接?他们都会受到影响吗?

还有其他一些不会影响我的应用程序其余部分的方法吗?

【问题讨论】:

    标签: java ftp apache-commons-net


    【解决方案1】:

    您有多种在 Java 中使用代理的方法,尤其是从 1.5 版开始。

    1. 使用系统属性:快速而强大但灵活性有限
      • 您可以对所有 TCP 连接使用 SOCKS 代理。
      • 您还可以为每个协议设置一个代理,可用于 HTTP、FTP 和 HTTPS
      • 对于这两种方法,您可以指定不使用代理的主机列表
    2. 使用java.net.Proxy 类 (Java 1.5+) 设置(或不设置)Proxy per Connection
    3. 实现java.net.ProxySelector(同上),这将根据您的标准为每个Connection 确定Proxy

    请参阅detailled Sun technote on networking & proxies

    【讨论】:

    • 嗯,现在SocketFactory 是要走的路——引用Commons-Net 3.3 文档commons.apache.org/proper/commons-net/apidocs/org/apache/… “特别注意的是setSocketFactory 方法......这对于添加 SSL 或代理支持“
    • @SamsonScharfrichter 您可以将其添加为另一个答案,它是:)。随着时间的推移,它应该会得到比这个更多的支持,并且对于回到这个问题的人来说更明显。
    • 你也可以更新你的“权威答案”...我懒0:)
    猜你喜欢
    • 1970-01-01
    • 2018-07-07
    • 2013-06-17
    • 2012-01-25
    • 2018-10-04
    • 2013-10-18
    • 1970-01-01
    • 2020-08-26
    • 2015-01-24
    相关资源
    最近更新 更多