Сервер Django недоступен, хотя ssh к компьютеру работает

Я запускаю сервер Django на компьютере RedHat. Я могу удаленно подключиться к компьютеру через ssh-соединение, поэтому я предполагаю, что проблем с брандмауэром нет. Однако, когда я выполняю следующую команду (которая якобы должна сделать сервер общедоступным)

python3 manage.py runserver 0.0.0.0:8080

Сервер недоступен с любого другого компьютера. Локально (с самой машины RedHat) я вижу, что сервер работает.

Я новичок в RedHat, поэтому, если мне нужно предоставить какую-либо другую информацию, дайте мне знать.

До сих пор я обнаружил, что могу сделать свой сервер доступным с помощью localtunnel, однако, поскольку он меняет URL-адрес, я предпочитаю решать проблему другим способом.



ОБНОВЛЕНИЕ: проблема не имеет ничего общего с Django. Смущало то, что сервер работал без проблем и стал недоступен без какой-либо конкретной причины.

В любом случае, мне нужно было добавить некоторые конфигурации (найденные в здесь), чтобы сделать порт: 8080 доступный.


person Matin Kh    schedule 12.06.2016    source источник
comment
Попробуйте netstat -tanp | grep LISTEN, чтобы узнать, прослушивает ли порт сеть, и iptables -L, чтобы убедиться, что правила брандмауэра не запрещают это.   -  person Davor Lucic    schedule 12.06.2016
comment
Попробовал первую команду и кажется, что порт слушает. Я не уверен, как интерпретировать вывод второй команды, поэтому привожу вам журнал вывода: dropbox.com/s/zoul6y8dag04h74/iptables.txt?dl=0   -  person Matin Kh    schedule 12.06.2016
comment
Хм, довольно сложные правила, последний RedHat, кажется, использует firewalld вместо iptable, поэтому я не могу много говорить. Внизу есть правило dpt:ssh ctstate NEW, которое разрешает новые соединения ssh, а ACCEPT all -- anywhere anywhere вверху, вероятно, для интерфейса lo, поэтому я почти уверен, что оно блокирует входящее соединение с вашим портом Django. Можете ли вы запустить iptables -vL, это очистит правило ПРИНЯТЬ все, так как он покажет интерфейс. К сожалению, я не уверен, как лучше всего открыть порт в брандмауэре.   -  person Davor Lucic    schedule 12.06.2016
comment
firewall-cmd --zone=public --add-port=8080/tcp я предполагаю что-то вроде этого, но отнеситесь к этому с недоверием. Я не системный администратор RH.   -  person Davor Lucic    schedule 12.06.2016
comment
Возможный дубликат centos 7 - открыть порт брандмауэра   -  person Matin Kh    schedule 16.06.2016
comment
Последний комментарий @DavorLucic - это ответ; подробности: (1) перейдите в каталог /usr/bin (как root) и выполните: (2) firewall-cmd --zone=public --add-port=8080/tcp   -  person Matin Kh    schedule 16.06.2016
comment
Мартин, похоже, вы пытаетесь опубликовать приложение в Интернете, поэтому я бы сначала спросил администратора сервера, нужна ли проверка безопасности. Если сервер ограничен только пользователями кампуса, тогда нужно просто изменить правила брандмауэра, как и для других пользователей, упомянутых выше.   -  person Andrei Sura    schedule 16.06.2016
comment
@AndreiSura Я понимаю беспокойство, но я все в этом проекте (администратор сервера, разработчик, тестер, аналитик данных, ...), поэтому я взял на себя задачу найти решение, как как можно быстрее, уделяя меньше внимания вопросам безопасности.   -  person Matin Kh    schedule 16.06.2016
comment
быть админом/тестером/да весело :)   -  person Andrei Sura    schedule 16.06.2016


Ответы (1)


Откройте порт 8080 с помощью

firewall-cmd --zone=public --add-port=8080/tcp

Чтобы добавить его в систему навсегда, добавьте --permanent следующим образом:

firewall-cmd --zone=public --add-port=8080/tcp --permanent
person Barthodian    schedule 01.07.2016