如何访问安装在 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
)
我已经在我的 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
)