从主机无法连接到虚拟机上安装的 OpenLDAP 服务器

从主机无法连接到虚拟机上安装的 OpenLDAP 服务器

我在 Windows 10 笔记本电脑上托管的 CentOS Hyper-V VM 上创建了 OpenLDAP 安装。使用 Apache Directory Studio(在 VM 上),我创建了连接、设置了域并添加了组和人员。

VM 的 IP 地址是172.16.22.150。在我的主机上,如果我 ping 该 IP,我会得到响应。如果我关闭 VM 并再次 ping 该 IP,这次我不会得到响应。重新启动 VM,ping,得到响应。所以看起来 IP 是好的。

到目前为止,一切都还好。然而……

首先,我也在主机上安装了 Apache Directory Studio。但是当我尝试创建相同的连接时,我得到了

连接失败 - 无法连接。

细节:

The connection failed
 - Unable to connect
  java.lang.Exception: Unable to connect
    at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper$1.run(DirectoryApiConnectionWrapper.java:251)
    at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.runAndMonitor(DirectoryApiConnectionWrapper.java:1312)
    at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.doConnect(DirectoryApiConnectionWrapper.java:281)
    at org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper.connect(DirectoryApiConnectionWrapper.java:172)
    at org.apache.directory.studio.connection.core.jobs.CheckNetworkParameterRunnable.run(CheckNetworkParameterRunnable.java:80)
    at org.apache.directory.studio.connection.ui.RunnableContextRunner$1.run(RunnableContextRunner.java:140)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)

  Unable to connect

其次,我需要创建一个小型的 c# 控制台应用程序作为 PoC 来连接到服务器并验证用户身份。奇怪的是,我可以使用以下命令顺利连接到服务器:

LdapDirectoryIdentifier ldi = new LdapDirectoryIdentifier("172.16.22.150");
LdapConnection ldapConnection = new LdapConnection(ldi);

但是当我尝试验证用户身份时:

ldapConnection.AuthType = AuthType.Basic;
ldapConnection.SessionOptions.ProtocolVersion = 3;
NetworkCredential nc = new NetworkCredential("ccrookston", "password", "mydomain.com");
ldapConnection.Bind(nc);

我得到:

LDAP 服务器不可用。

堆栈跟踪:

   at System.DirectoryServices.Protocols.LdapConnection.Connect()
   at System.DirectoryServices.Protocols.LdapConnection.BindHelper(NetworkCredential newCredential, Boolean needSetCredential)
   at System.DirectoryServices.Protocols.LdapConnection.Bind(NetworkCredential newCredential)
   at OpenLDAP.Program.Main(String[] args) in C:\Users\caseyc\Documents\Visual Studio 2017\Projects\OpenLDAP\Program.cs:line 33

我不知道从哪里开始排除故障。这是虚拟机上的 CentOS 中的配置吗?是 Hyper-V 配置吗?还是我的 Windows 主机上的某些东西,例如防火墙设置?

谢谢!

答案1

明白了。在防火墙中(使用 GUI),我添加了端口:

389-TCP 389-UDP

看来两者都需要。

相关内容