无法在Ubantu 18.04上对Askbot django应用程序进行身份验证
可以ping通LDAP服务器,但仍然显示“无法联系LDAP服务器”
错误日志显示:-
回溯(最近通话最近):文件 “ /srv/askbot/venv/local/lib/python2.7/site-packages/askbot/deps/django_authopenid/ldap_auth.py”, ldap_authenticate_default中的第127行 get_attrs文件“ /srv/askbot/venv/local/lib/python2.7/site-packages/ldap/ldapobject.py”, 第854行,在search_s中 返回self.search_ext_s(base,scope,filterstr,attrlist,attrsonly,None,None,timeout = self.timeout) 文件 “ /srv/askbot/venv/local/lib/python2.7/site-packages/ldap/ldapobject.py”, 第847行,在search_ext_s中 msgstr = self.search_ext(基本,范围,filterstr,attrlist,attrsonly,serverctrls,clientctrls,超时,大小限制) 文件 “ /srv/askbot/venv/local/lib/python2.7/site-packages/ldap/ldapobject.py”, 第843行,在search_ext中 超时,大小限制,文件“ /srv/askbot/venv/local/lib/python2.7/site-packages/ldap/ldapobject.py”, _ldap_call中的第331行 reraise(exc_type,exc_value,exc_traceback)文件“ /srv/askbot/venv/local/lib/python2.7/site-packages/ldap/ldapobject.py”, _ldap_call中的第315行 结果= func(* args,** kwargs)SERVER_DOWN:{u'info':'传输端点未连接','errno':107,'desc':u“无法联系LDAP 服务器”}
答案 0 :(得分:1)
Ping使用ICMP协议。 LDAP使用TCP连接到(通常)端口389(对于LDAPS则使用636)。那是两件事。
因此,您可以ping服务器的事实仅意味着服务器在线。这并不意味着LDAP服务正在运行,也不意味着防火墙没有阻止TCP流量流向正确的端口。
您可以通过以下两种方式之一来测试打开与Ubuntu上正确端口的TCP连接:
for (int i = 0; i < 3; i++)
{
do
{
randQuestion = r.Next(0, 5);
}
while (equal(beforeQ, randQuestion));
randQuestion = r.Next(0, 5);
for (int j = 1; j < 5; j++)
{
do
{
randBogi = r.Next(1, 5);
}
while (equal(beforeB, randBogi));
beforeB[j - 1] = randBogi;
R_Question[i, j] = Question[randQuestion, randBogi];
}
}
bool equal(int[] before, int rand)
{
for (int k = 0; k < before.Length ; k++)
{
if (before[k].Equals(rand))
{
return true;
}
}
return false;
}
或者,
telnet yourserver 389
有关here的更多信息。
您可能必须安装telnet或nmap才能运行。而且,如果您使用的是LDAPS(基于SSL的LDAP),则应测试端口636。