博主CSDN昵称:守护者ly,欢迎大家前去指点
当我们连接ejabberd(我使用的版本是16.09,Linux版,Mac版与此大同小异,文件目录位置和修改方法基本相同,Windows版下面也会有介绍)进行创建用户操作时,会出现"403 -auth"的错误,提示"Denied by ACL"。
具体的ejabberd服务器返回的错误如下:
<error xmlns="jabber:client" type="auth" code="403">
<forbidden xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" />
<text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">Denied by ACL</text>
</error>
出现这种错误通常都是因为ejabberd服务器的配置问题,我们需要对ejabberd安装路径下的conf文件夹下的ejabberd.yml文件进行修改(Linux和Mac版本在安装目录下的conf文件夹下)。
我使用的工具是Xshell连接Linux服务器,Mac版的和它差不多。如果是Windows版本的,conf文件夹不在安装目录下,而是在C盘下,具体位置:
对于ejabberd.yml文件,我一共修改了三处。第一处修改:
将图中的trusted_network的配置修改成:
## Only allow to register from localhost
trusted_network:
- allow
第二处:
将registration_timeout的注释打开并做修改,这段就变成了:
## By default the frequency of account registrations from the same IP
## is limited to 1 account every 10 minutes. To disable, specify: infinity
registration_timeout: infinity
第三处:
打开access_from的注释,并修改配,同时注释掉ip_access:
##ip_access: trusted_network
##
## Local c2s or remote s2s users cannot register accounts
##
access_from: register
access: register
修改完配置后,命令行进入ejabberd安装目录的bin目录下,运行"./stop"命令停止ejabberd服务,再运行"./start"启动ejabberd服务,配置即可生效,可以运行"./status"命令查看ejabberd是否启动(stop和start需要等待一小段时间完成,千万不要命令没有执行完就强制退出)
关于ejabberd服务器的配置修改到此结束,如果哪里介绍的有纰漏,欢迎大家指教!