0

这是我的测试用例:

[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)
daemon: bind(7) failed errno=98 (地址已经在使用)
slap_open_listener: 在 ldaps 上失败://127.0.0.1:636 拍打
停止。
connections_destroy:没有什么可破坏的。

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

我的环境:

操作系统:centos 6.4 x86_64
OpenLDAP:yum安装的2.4.23

有什么建议吗?

4

2 回答 2

1

it seems that another service is already running on port 636:

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

you can try the following command to identify this service:

netstat -tulpn | grep ':636 ' | grep 'LISTEN'
于 2013-08-07T01:53:32.607 回答
1

旧帖子,但仍然...

当 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
于 2016-02-12T13:19:45.827 回答