Контейнер LXD, отказывающий соединения от хоста

Я довольно новичок в LXD, недавно обнаружив его. Я делаю успехи в базовых взаимодействиях с изображениями и контейнерами - это выглядит многообещающе.

В настоящее время я застрял на проблеме подключения с хоста к службе, работающей в локальном контейнере. Я впервые пытаюсь это сделать. Я получаю сообщение об ошибке "Отказано в соединении". Более подробная информация ниже:

user@sparky1:~$ curl 10.0.3.49
curl: (7) Failed to connect to 10.0.3.49 port 80: Connection refused
user@sparky1:~$ 

Хостом является Ubuntu Server 14.04 на моем ноутбуке - это новая установка, и она довольно проста. Я позволил системе выполнить всю конфигурацию (включая мост lxcbr0) и не изменил никаких стандартных настроек по умолчанию.

Я запускаю контейнер на основе образа CentOSv6. Контейнер запущен, и внутри я запускаю веб-сервер. Изнутри контейнера я могу подключиться к его локальному веб-серверу через порт 80 просто отлично (запустив "curl hostname"). Он подключается по IP-шлейфу 127.0.0.1. Я получаю действительный ответ от локального веб-сервера из контейнера. Ура.

Успешный ответ (даже если это ответ 403):

[root@wc1 ~]# curl wc1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /
on this server.</p>
<hr>
<address>IBM_HTTP_Server at wc1 Port 80</address>
</body></html>
[root@wc1 ~]#

Если я пытаюсь подключиться через IP на мосту, либо из контейнера, либо с хоста, я получаю упомянутую ошибку "Отказ в соединении".

Итак, я пытаюсь выяснить, что потребуется, чтобы разрешить соединения от хоста к веб-серверу, работающему в контейнере. Я потратил несколько часов на поиски в Интернете и не нашел ответа (или был слишком плотным, чтобы его распознать).

Брандмауэр отключен ("ufw status" говорит так). Что мне не хватает? Заранее спасибо.

1 ответ

Я решил свою проблему. Сначала я вспомнил (предположительно. Sigh), что указал IP-адрес при выдаче команды 'curl' из контейнера, но на самом деле я указал имя хоста. Как только я заметил, что на самом деле указал имя хоста и что hostanme перешел в обратную связь, я понял свою проблему.

В моем apache httpd.conf "Listen", который я не заметил, разрешен для устройства обратной петли, а не для IP на мосту lxcbr0. В директиве указано имя хоста. Файл httpd.conf был автоматически сгенерирован инструментом вендора, поэтому я сначала не думал об этом. Как только я изменил директиву Listen, чтобы прослушивать правильный IP (10.0.3.49), все работало.

Другие вопросы по тегам