Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SOCKS v5请求发送当前用户而不是无用户_Java_Docker_Proxy_Socks_Dante - Fatal编程技术网

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

Java SOCKS v5请求发送当前用户而不是无用户,java,docker,proxy,socks,dante,Java,Docker,Proxy,Socks,Dante,我的问题是: 1) 在docker compose网络中,如何将dante用作SOCKS v5代理,而不进行身份验证,将amqp消息从生产者发送到RabbitMQ 2) 我以前从来没用过袜子,所以我不知道我想做的是愚蠢的还是行不通的,是吗 我目前正试图建立一个由三部分组成的网络: 代理服务器(Dante) RabbitMQ服务器 消息生产者 我想通过Dante将我的消息代理给rabbitMQ 为了实现这一点,我已开始使用以下选项创建我的制作人: -DsocksProxyHost=dante 我正

我的问题是:

1) 在docker compose网络中,如何将dante用作SOCKS v5代理,而不进行身份验证,将amqp消息从生产者发送到RabbitMQ

2) 我以前从来没用过袜子,所以我不知道我想做的是愚蠢的还是行不通的,是吗

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

  • 代理服务器(Dante)
  • RabbitMQ服务器
  • 消息生产者 我想通过Dante将我的消息代理给rabbitMQ

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

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

    我可以用docker compose的以下输出验证设置:

    app_1 | Connecting to proxy host: dante app_1 | User: socksuser with password: sockspass app_1 | dante_1 | Jan 24 15:01:41 (1516806101.263639) sockd[7]: info: pass(1): tcp/accept [: 172.19.0.4.40910 172.19.0.3.1080 dante_1 | Jan 24 15:01:41 (1516806101.265226) sockd[7]: info: block(1): tcp/accept ]: 172.19.0.4.40910 172.19.0.3.1080: error after reading 11 bytes in 0 seconds: system password authentication failed for user "root" app_1 | java.net.SocketException: SOCKS : authentication failed app_1 | at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:473) 应用程序1 |连接到代理主机:dante 应用程序1 |用户:socksuser,密码:sockspass 附录1| dante|u 1 | Jan 24 15:01:41(1516806101.263639)sockd[7]:信息:通行证(1): tcp/accept[:172.19.0.4.40910 172.19.0.3.1080 dante|u 1 | Jan 24 15:01:41(1516806101.265226)sockd[7]:信息:block(1): tcp/accept]:172.19.0.4.40910 172.19.0.3.1080: 在0秒内读取11个字节后出错: 系统密码验证 用户“root”失败 app|u 1 | java.net.SocketException:SOCKS:身份验证失败 app_1|位于java.net.socksocketimpl.connect(socksocketimpl.java:473)
    我使用的dante docker映像是,提供了默认配置,该配置声明允许每个人使用代理。

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

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