博主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服務器的配置修改到此結束,如果哪里介紹的有紕漏,歡迎大家指教!