如何使用 Apache Directory Studio 和代理?

如何使用 Apache Directory Studio 和代理?

我想ldap.subnet.example.com使用以下方式连接到在服务器上运行的 LDAP 服务器Apache 目录工作室

java-14-openjdk我在Manjaro Linux 上运行 Apache Directory Studio 2.0.0.v20200411-M15 。

不幸的是,LDAP 服务器只能从同一子网内访问,而我在这个子网之外(我的主机是mypc.example.org)。但是我可以通过 SSH 访问主机portal.subnet.example.com,该主机与 LDAP 服务器位于同一子网中,因此可以绑定到它。

我解决这个问题的方法是使用以下命令创建 SOCKS 代理mypc.example.org

ssh -D 8080 [email protected]

然后我配置软件使用这个 SOCKS 代理。它与 Firefox 配合得很好。

但是,它似乎无法与 Apache Directory Studio 配合使用。我在“窗口”>“首选项”>“常规”>“网络连接”中进行了以下设置:

  • 活跃提供者:手动
  • 代理条目:
    • HTTP(这里没有指定,但我也无法删除它)
    • HTTPS(同上)
    • SOCKS:主机localhost、端口8080、提供商Manual、身份验证No
  • 代理绕过:
    • localhost、提供商Manual (默认设置,我没有修改这个)
    • 127.0.0.1、提供商Manual (默认设置,我没有修改这个)

但是,当我尝试连接到服务器时,“打开连接:(14%)”会在左下角出现一段时间,然后我收到“打开连接时出错 - MSG_04177_CONNECTION_TIMEOUT(5000)”的提示。

我也尝试过在中设置代理ApacheDirectoryStudio.ini,但是仍然没有成功。

-vmargs
-DsocksProxyHost=localhost
-DsocksProxyPort=8080

这个问题可能相关——最后一条评论给我的印象是,Apache LDAP API 只是忽略了这些设置,因为它基于 Apache MINA,而 Apache MINA 的配置方式不同;然而我还没有找到原因。这个 Stack Overflow 问题与问题中描述的问题相符,但遗憾的是,解决方案是代码 - 我需要一个配置解决方案。

答案1

我的解决方法是使用 SSH 隧道。

389假设使用标准 LDAP 端口:

ssh -L 389:ldap.subnet.example.com:389 [email protected]

这意味着,在您的主机上mypc.example.org,所有通过本地端口的流量389都将被发送到 SSH 服务器,然后转发到端口处的portal.subnet.example.com远程目的地(SSH 服务器可以访问)。ldap.subnet.example.com389

然后查询将使用本地地址和端口:ldap://localhost:389ldap://mypc.example.org:389

不使用代理,SSH 隧道对 Apache Directory Studio 是透明的。

注意:这里为了方便我建议使用本地端口389(例如ssh -L 389:),但您可以使用任何可用的本地端口号。

相关内容