如何访问安装在 Vagrant 盒子上的 eJabberd

How to access eJabberd installed on a Vagrant box

我已经在我的 ubuntu 盒子(Mac 主机)上安装了 eJabbered,但出于某种原因无法访问管理面板(通过我主机上的 localhost)。我正在尝试在主机上使用 localhost:5280/admin 调用管理面板。 我已经尝试使用 apache 服务器来测试我的端口转发是否配置错误以及许多不同的选项,这可能会导致问题。以下是我的 ejabberd.yml 文件中的一些配置选项:

listen:
  - 
    port: 5222
    ip: "::"
    module: ejabberd_c2s
    certfile: "/etc/ejabberd/ejabberd.pem"
    starttls: true
    protocol_options:
      - "no_sslv3"
    max_stanza_size: 65536
    shaper: c2s_shaper
    access: c2s
    zlib: true
    resend_on_timeout: if_offline
  - 
    port: 5269
    ip: "::"
    module: ejabberd_s2s_in
  - 
    port: 5280
    ip: "::"
    module: ejabberd_http
    request_handlers:
      "/websocket": ejabberd_http_ws
    ##  "/pub/archive": mod_http_fileserver
    web_admin: true
    http_bind: true
    ## register: true
    ## captcha: true
    tls: true
    certfile: "/etc/ejabberd/ejabberd.pem"

hosts:
  - "localhost"

admin:
   user:
       - "": "localhost"

和我的 Vagrant 文件:

  config.vm.box = "ubuntu/xenial64"
  config.vm.hostname = "docker" #"web-dev"
  config.vm.network "forwarded_port", guest: 80, host: 8080
  config.vm.network "forwarded_port", guest: 5222, host: 5222
  config.vm.network "forwarded_port", guest: 5269, host: 5269
  config.vm.network "forwarded_port", guest: 5280, host: 5280

我不记得更改过任何其他可能有用的选项

虽然这只是一个快速修复,但我能够(在@gviews 的帮助下)弄清楚我的问题与 "Vagrantfile" 无关(因为即使在我的客人身上我也无法让它工作机),但在我的 ejabberd 配置文件中有一个 "tls" 选项(我将其设置为 false)。我仍然没有建立安全连接,出于测试目的,只需调用我的主机上的页面就足够了。收到后:

<?xml version='1.0'?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en' lang='en'>
<head>
  <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
</head>
<body>
  <h1>Unauthorized</h1>
</body>
</html>

对我的客人的回应(通过调用:curl localhost:5280/admin)我重新加载了一个 vagrant box,然后我让它在主机上工作。

PS。所以问题是错误配置的 ssl 连接,对我来说 ejabberds 日志是一个很大的帮助(在 ubuntu 它位于:/var/log/ejabberd