ejabberd16.09创建用户的403-auth(Denied by ACL)错误解决方法

博主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盘下,具体位置:

QQ截图20170106084103.png

对于ejabberd.yml文件,我一共修改了三处。第一处修改:

QQ截图20170106084435.png

将图中的trusted_network的配置修改成:

## Only allow to register from localhost  
trusted_network:  
  - allow 

第二处:

QQ截图20170106162112.png

将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  

第三处:

QQ截图20170106162333.png

打开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服务器的配置修改到此结束,如果哪里介绍的有纰漏,欢迎大家指教!

推荐阅读更多精彩内容