【问题标题】:SOCKS v5 request sends current user instead of no userSOCKS v5 请求发送当前用户而不是没有用户
【发布时间】:2018-07-03 16:45:35
【问题描述】:

我的问题:

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

2) 我以前从未使用过 SOCKS,所以我不知道我正在尝试做的事情是愚蠢还是不应该工作,是吗?

我目前正在尝试建立一个包含三个部分的网络:

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

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

为了实现这一点,我使用以下选项开始了我的制作人: -DsocksProxyHost=dante

我正在使用 docker compose 脚本运行应用程序,我可以验证我的生产者连接到主机 dante。但是,我的制作人总是尝试连接当前用户的凭据,即 root(如果我更改用户,则为 socksuser),而忽略以下选项: -Djava.net.socks.username=socksuser -Djava.net.socks.password=sockspass

我可以通过 docker compose 的以下输出进行验证:

app_1 |连接代理主机:dante app_1 |用户:socksuser 密码:sockspass app_1 | 但丁_1 | 1 月 24 日 15:01:41 (1516806101.263639) sockd[7]: info: pass(1): tcp/接受 [: 172.19.0.4.40910 172.19.0.3.1080 但丁_1 | 1 月 24 日 15:01:41 (1516806101.265226) sockd[7]: info: block(1): tcp/接受]: 172.19.0.4.40910 172.19.0.3.1080: 在 0 秒内读取 11 个字节后出错: 系统密码认证 用户“root”失败 app_1 | java.net.SocketException:SOCKS:身份验证失败 app_1 |在 java.net.SocksSocketImpl.connect(SocksSocketImpl.java:473)

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

【问题讨论】:

    标签: java docker proxy socks dante


    【解决方案1】:

    用于 SOCKS5 身份验证的方法由 SOCKS5 客户端和 SOCKS5 服务器在实际身份验证之前协商确定。

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

    【讨论】:

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