我刚刚在远程服务器上安装了ejabberd。
假设远程服务器的IP为123.123.123.123
,其内部IP地址为10.0.0.10
。
然后,我编辑了:
/etc/ejabberd/ejabberd.cfg
%% ... more codes
%% Options which are set by Debconf and managed by ucf
%% Admin user
{acl, admin, {user, "admin", "myexample.com"}}.
%% Hostname
{hosts, ["myexample.com"]}.
%% ... more codes
{5280, ejabberd_http, [
%%{request_handlers,
%% [
%% {["pub", "archive"], mod_http_fileserver}
%% ]},
%%captcha,
http_bind,
http_poll,
web_admin
]}
%% ... more codes
并通过在服务器admin
的ssh中执行以下内容,以管理员用户身份添加123.123.123.123
:
root:# ejabberdctl register admin myexample.com adminpassword
root:# service ejabberd restart
但是,管理控制台myexample.com:5280/admin
无法访问(超时)。我也试过123.123.123.123:5280/admin
,但失败了。
但是,从服务器的控制台,如果我访问10.0.0.10:5280/admin
,它可以正常工作。此外,我可以通过执行以下命令来确认用户admin
已注册:
ejabberdctl registered_users
如何访问webadmin(或者更重要的是,从其外部ip或域访问任何端口)?
答案 0 :(得分:1)
这可能只是一个连接问题。 这就是我要做的事情:
'sudo netstat -nap | grep 5280'(或等效的)来验证ejabberd正在监听webadmin的接口
如果它按照我的预期收听“all”(0.0.0.0),那么用'telnet 123.123.123.123 5280'验证它的可达性。如果无法连接,请检查服务器的防火墙(例如'sudo iptables -L -n -v')。
你可能只需要为你正在连接的源主机“打开”123.123.123.123:5280。