SOCKS v5 请求发送当前用户而不是无用户

问题描述 投票:0回答:1

我的问题:

1) 如何使用 dante 作为 SOCKS v5 代理,无需身份验证即可将 amqp 消息从生产者发送到 docker-compose 网络中的 RabbitMQ?

2)我以前从未使用过 SOCKS,所以我不知道我想做的事情是否愚蠢或不应该工作,是吗?

我目前正在尝试建立一个由三个部分组成的网络:

  1. 代理服务器(Dante)
  2. RabbitMQ 服务器。
  3. 消息生产者。

我想通过 Dante 将我的消息代理到rabbitMQ。

为了实现这一目标,我使用以下选项启动了我的制作人:

-DsocksProxyHost=dante

我正在使用 docker compose 脚本运行应用程序,并且我可以验证我的生产者是否连接到主机

dante
。但是,我的制作人总是尝试连接当前用户的凭据,即 root(如果我更改用户,则为ocksuser),忽略以下选项:
-Djava.net.socks.username=socksuser
-Djava.net.socks.password=sockspass

我可以验证是否使用 docker compose 的以下输出进行设置:

 应用程序_1 |连接到代理主机:dante
    应用程序_1 |用户:socksuser 密码:sockspass
    应用程序_1 |
    但丁_1 | 1 月 24 日 15:01:41 (1516806101.263639) sockd[7]: 信息: pass(1): 
                  TCP /接受[:172.19.0.4.40910 172.19.0.3.1080
    但丁_1 | 1 月 24 日 15:01:41 (1516806101.265226) sockd[7]: 信息: 块 (1): 
                  TCP/接受]:172.19.0.4.40910 172.19.0.3.1080: 
                  0 秒内读取 11 个字节后出错: 
                  系统密码认证 
                  用户“root”失败

    应用程序_1 | java.net.SocketException:SOCKS:身份验证失败
    应用程序_1 |     在 java.net.SocksSocketImpl.connect(SocksSocketImpl.java:473)

我使用的 dante docker 镜像是 wernight/dante,提供的默认配置表明每个人都可以使用代理。

java docker proxy socks
1个回答
0
投票

用于 SOCKS5 身份验证的方法是在实际身份验证之前由 SOCKS5 客户端和 SOCKS5 服务器之间协商达成一致的。

因此,如果客户端正在启动身份验证,则表明服务器需要它,我会检查 SOCKS5 服务器配置。

© www.soinside.com 2019 - 2024. All rights reserved.