порт 8000 не включается даже после включения его на брандмауэре Ubuntu 18 - PullRequest
0 голосов
/ 02 мая 2020

Я застрял со странным поведением ubuntu 18 в цифровом океане, я просто создал дроплет и не использовал брандмауэр DO, но попытался включить порт 8000 на сервере, например:

sudo ufw allow 8000/tcp

Когда я проверяю мои правила порта, все в порядке, я имею в виду, что это действительно то, что мне нужно, есть даже больше (потому что я также добавил udp)

sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
80/udp                     ALLOW       Anywhere
443/udp                    ALLOW       Anywhere
8000/tcp                   ALLOW       Anywhere
8000/udp                   ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443/tcp (v6)               ALLOW       Anywhere (v6)
80/udp (v6)                ALLOW       Anywhere (v6)
443/udp (v6)               ALLOW       Anywhere (v6)
8000/tcp (v6)              ALLOW       Anywhere (v6)
8000/udp (v6)              ALLOW       Anywhere (v6)

Когда я запускаю flask служба использует порт 8000 на сервер, что-то вроде этого:

FLASK_APP=app.py flask run --host=127.0.0.1 --port=8000

Я могу получить ответ внутри сервера, например:

curl 127.0.0.1:8000

Но когда я пытаюсь сделать то же самое на сайте, я получаю отказанное соединение, например:

curl IPSERVER:8000

ответ:

curl: (7) Failed to connect to IPSERVER port 8000: Connection refused

Я также проверяю состояние порта с помощью этой службы: https://www.yougetsignal.com/tools/open-ports/

И он говорит, что порт 8000 закрыт, но я включил его, и на DO нет брандмауэра (у меня один но я удалил, чтобы проверить, и это все еще не работает)

Кто-нибудь знает, что может быть? У Ubuntu 18 есть другое место, чтобы включить его? Должен ли я перезапустить сервер, прежде чем вносить эти изменения?

1 Ответ

1 голос
/ 03 мая 2020

Вам нужно вызвать свой скрипт с помощью

--host=<your public ip>, если вы хотите привязать только к указанному адресу.

--host=0.0.0.0, чтобы привязать все доступные адреса.

--host=127.0.0.1 будет привязан только к обратному адресу l oop.

Быстрый запуск состояния документов;

Внешний видимый сервер

Если вы запустите сервер, вы заметите, что сервер доступен только с вашего собственного компьютера, а не с любого другого в сети. Это значение по умолчанию, поскольку в режиме отладки пользователь приложения может выполнить произвольный код Python на вашем компьютере.

Если у вас отключен отладчик или вы доверяете пользователям вашей сети, вы можете сделать сервер общедоступным. доступно просто путем добавления --host = 0.0.0.0 в командную строку:

$ flask run --host = 0.0.0.0

Это заставляет вашу операционную систему прослушивать все публикации. c IPs.

...