Прослуховування портів на localhost: 8000, але не на ip: 8000


9

Привіт, я запускаю веб-додаток на порт 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?

Спасибі заздалегідь!


1
Програма, ймовірно, слухає адресу localhost (127.0.0.1), а не всі локальні адреси (0.0.0.0). Ви не надали достатньо інформації у своєму додатку, щоб люди могли допомогти вам виправити це.
James Henstridge

Мій додаток, що працює на порту 8000, - це просто веб-сайт. Можливо, ця netstat copy / paste розкриє більше про мою мережу:
Marionette

3
Що ж, біг netstat -tln | grep 8000може кинути світло на проблему. Якщо локальна адреса сервера 127.0.0.1:8000замість 0.0.0.0:8000цього, вона буде доступна лише через інтерфейс зворотного зв'язку.
James Henstridge

перевірити свої iptables

Відповіді:


5

Як зазначає @JamesHenstridge, поведінка, яку ви спостерігаєте, пов’язана не з тим, що Ubuntu блокує вашу програму на деяких IP-адресах, а завдяки тому, що ваша програма явно прив'язує лише до локального інтерфейсу зворотного зв'язку (127.xxx). Принаймні, якщо ви не встановили і не встановили брандмауер, щоб спеціально блокувати цей порт.

Потрібно ознайомитися з документацією програми, щоб побачити, чи є налаштування, щоб воно слухало інші (або всі) інтерфейси.


Ви також знайомі з переадресацією портів на маршрутизаторі? Якщо ви збираєтесь підключитися до нього з Інтернету на порт 8000, вам потрібно переслати порт 8000 на ці машини ip.
wlraider70

0

В одному файлі конфігурації вашої програми слід налаштувати свою програму на прослуховування зовнішнього зовнішнього IP: вашого порту. Це означає, що є файл конфігурації, в якому ви можете знайти директиву, яка вказує програмі прослуховувати або 127.0.0.1:xxxx, або localhost: xxxx Це IP, який потрібно змінити за допомогою внутрішнього IP (наприклад: 192.168.1.40) або зовнішнього IP

Іноді IP-адресу localhost слід замінити на 0,0.0.0:xxxx, що означає, що програма повинна відповідати на запит від будь-якого IP.

Iptables також можуть допомогти пересилати пакети з внутрішнього IP до зовнішнього IP.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.