Здравствуйте, я запускаю веб-приложение на порту 8000. Когда я обращаюсь к нему с хост-сервера localhost: 8000, оно отвечает нормально, 127.0.0.1:8000 также работает, но 192.168.1.7:8000 не работает. 192.168.1.7 - это ip моего сервера.
Также, если я пытаюсь перейти к другому веб-приложению, работающему на порту 80, оно работает. 192.168.1.7
Я включил брандмауэр ufw и установил разрешение по умолчанию для ufw. Я использую сервер Ubuntu 12.04
Любые предложения о том, почему я не могу получить доступ к своему приложению через порт 8000, используя ip-адрес: 8000?
Заранее спасибо!
Как указывает @JamesHenstridge, наблюдаемое вами поведение связано не с тем, что Ubuntu блокирует ваше приложение на некоторых IP-адресах, а с тем, что ваше приложение явно привязано только к локальному интерфейсу обратной связи (127.x.x.x). По крайней мере, если вы не установили и не настроили брандмауэр для конкретной блокировки этого порта.
Вам необходимо ознакомиться с документацией вашего приложения, чтобы узнать, есть ли настройка, позволяющая ему прослушивать другие (или все) интерфейсы.
В одном файле конфигурации вашего приложения вы должны настроить приложение для прослушивания внешнего externalIP: yourport. Это означает, что есть файл конфигурации, в котором вы можете найти директиву, сообщающую приложению прослушивать 127.0.0.1:xxxx или localhost: xxxx. Это IP-адрес, который нужно изменить с помощью внутреннего IP-адреса (например, 192.168.1.40) или внешнего IP-адреса.
Иногда локальный IP-адрес следует заменить на 0.0.0.0:xxxx, что означает, что приложение должно отвечать на запрос с любого IP-адреса.
Iptables также может помочь пересылать пакеты с внутреннего IP на внешний IP.