我的问题:
1) 如何在 docker-compose 网络中将 dante 用作 SOCKS v5 代理,无需身份验证即可将 amqp 消息从生产者发送到 RabbitMQ?
2)我以前从未使用过 SOCKS,所以我不知道我想做的是愚蠢还是不应该工作,是吗?
我目前正在尝试建立一个包含三个部分的网络:
- 代理服务器 (Dante)
- 一个 RabbitMQ 服务器。
- 消息生产者。
我想通过 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,提供的默认配置表明每个人都可以使用代理。