openldap无法绑定ldaps://127.0.0.1:636

时间:2013-08-07 01:32:00

标签: centos openldap

这是我的测试用例:

  

[root@192.168.121.130~ $] slapd -d 1 -h ldaps://127.0.0.1:636
  @(#)$ OpenLDAP:slapd 2。4。23(2013年4月29日07:47:08)$
          mockbuild@c6b7.bsys.dev.centos.org:/builddir/build/BUILD/openldap-2.4.23/openldap-2.4.23/build-servers/servers/slapd
  ldap_pvt_gethostbyname_a:host = centos-6.3,r = 0
  daemon_init:听取ldaps://127.0.0.1:636
  daemon_init:1个听众打开...
  ldap_url_parse_ext(LDAPS://127.0.0.1:636)
  守护进程:bind(7)失败errno = 98(地址已在使用中)
  slap_open_listener:在ldaps://127.0.0.1:636上失败   slapd停了。
  connections_destroy:没什么好破坏的。

但是如果我更改另一个端口,例如6361,它就可以了。

我的环境:

  

OS:centos 6.4 x86_64
  OpenLDAP:由yum安装的2.4.23

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

似乎另一项服务已在端口636上运行:

daemon: bind(7) failed errno=98 (Address already in use)

您可以尝试以下命令来识别此服务:

netstat -tulpn | grep ':636 ' | grep 'LISTEN'

答案 1 :(得分:0)

旧帖,但仍然......

当SELinux阻止slapd启动时,也会显示此错误。我个人在将数据(/ var / lib / ldap /)从另一台服务器手动复制到此服务器后经历过这种情况。我不得不将导入的文件恢复为默认的SELinux安全上下文:

restorecon -R /var/lib/ldap

我认为这并不适用于您,但如果您尝试将slapd绑定到不同寻常的端口,则可能也会发生。在CentOS7上默认,这些是允许的端口:

#semanage port -l | grep ldap
ldap_port_t                    tcp      389, 636, 3268, 7389
ldap_port_t                    udp      389, 636

可以使用 semanage 将另一个添加到合法端口范围。 (您可能需要安装包 policycoreutils-python 。):

semanage port -a -t ldap_port_t -p tcp 10389

...除了上面列出的四个之外,如果你想允许slapd在TCP端口10389上绑定。在此之后,之前的结果将如下所示:

# semanage port -l | grep ldap
ldap_port_t                    tcp      10389, 389, 636, 3268, 7389
ldap_port_t                    udp      389, 636