java开发Socks5代理C/S

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java开发Socks5代理C/S相关的知识,希望对你有一定的参考价值。

各位高手同志给点思路或者代码。在下感激不尽。。。。

参考技术A 先去看看Socket5的代理协议吧。

代码没做过,帮不了你。

连接到 SOCKS5 代理以在 Java 中执行 FTP/S

【中文标题】连接到 SOCKS5 代理以在 Java 中执行 FTP/S【英文标题】:Connecting to a SOCKS5 proxy to do FTP/S in Java 【发布时间】:2010-10-20 21:55:51 【问题描述】:

我正在编写一个作业,它将通过我的 SOCKS5 代理连接到客户端的 FTP/S 服务器,并且我正在使用 Apache Commons Net 包。问题是我的 SOCKS 代理配置为不需要身份验证,但我仍然收到以下异常:

java.net.SocketException: SOCKS : authentication failed
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:443)
    at java.net.Socket.connect(Socket.java:519)

我尝试将 java.net.socks.username 和 password 属性设置为空字符串,但我仍然明白。有没有办法告诉代码不使用身份验证?深入研究底层来源,我几乎认为它正在查询代理服务器的身份验证要求,但我不确定。

【问题讨论】:

【参考方案1】:

好的,所以问题是我的 SOCKS 代理 已设置 要求进行身份验证,但也接受未经过身份验证的连接。我们使用Dante,虽然像 Filezilla 这样的程序足够聪明,可以遍历所有可接受的身份验证方法,但似乎 java.net 包只使用了提供的第一种方法。由于我的 sockd.conf 文件中的身份验证配置如下:

method: username none
user.notprivileged: nobody

java.net 要求用户名和密码。我只是将方法翻转为“无用户名”,Filezilla 和 java.net 都正确地通过了代理。这有点像 IT 解决方案,但不管怎样让代码工作,对吧?

【讨论】:

感谢您抽出宝贵时间回答您自己的问题。我遇到了完全相同的问题,这就是解决方案:D 非常感谢。自己永远不会想到这一点。

以上是关于java开发Socks5代理C/S的主要内容,如果未能解决你的问题,请参考以下文章

Java实现sock5代理服务器

自己动手开发Socks5代理服务器

连接到 SOCKS5 代理以在 Java 中执行 FTP/S

带有 Socks4 代理的 Java Socket 更改为 Socks5

如何通过 socks5 代理使用 JavaScript socket.io-client 库?

JSch 是不是支持 SOCKS5 代理?