我正在尝试在两个 openldap 服务器之间设置主复制。为此,第一步让我配置这两个文件:
/etc/hosts
,需要包含服务器(本身和第二台服务器)的baseDN的DNS:
192.168.150.1 my.server1.org
192.168.150.2 my.server2.org
/etc/default/slapd
,需要包含服务器自己的 FQDN 以将未来的 serverID 与 URI 匹配:
SLAPD_SERVICES="ldap:/// ldapi:/// ldap://my.server1.org"
配置 SLAPD_SERVICES 变量并重新启动 slapd 服务后,我收到以下错误:daemon: listen(ldap://my.server1.org, 5) failed errno=98 (address already un use)
。注意:服务处于活动状态(未处于失败状态)
所有 LDAP 命令(例如“ldapsearch -x”)都返回相同的错误:ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
我尝试通过列出正在使用该地址的服务器上运行的所有进程来查找原因my.server1.org
:
lsof -i |grep my.server1.org
nmdb 377 root 25u IPv4 17535 0t0 UDP my.server1.org:netbios-ns
nmdb 377 root 27u IPv4 17537 0t0 UDP my.server1.org:netbios-dgm
注意:杀死netbios的PID并没有解决问题
如您所见,没有第二个 slapd/openldap 服务已经在运行。
我自己或在互联网上找不到解决方案,所以我在这里发布我的问题。
编辑1:在@naxto asenjo 的请求之后,这里是命令的结果ss --listening --processes --numeric |egrep "389|636"
:
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
u_str LISTEN 0 128 /run/containerd/containerd.sock.ttrpc 14758 users:(("containerd",pid=389, fd=6)) *O
u_str LISTEN 0 128 /run/containerd/containerd.sock.ttrpc 14758 users:(("containerd",pid=389, fd=7)) *O
编辑 2:我尝试将 SLAPD_SERVICES 和 /etc/hosts 中的值更改为我从未使用过的新 FQDN(ldap 数据库仍然是 my.server1.org)。重新启动 slapd 后,我收到相同的错误,“地址已在使用中”(对于新的 FQDN)。/etc/hosts 和 SLAPD_SERVICES 似乎遇到了冲突?如果我不编辑 /etc/hosts 文件,我会收到错误“名称解析暂时失败”。