Вопрос Открытый порт 5000?


Вчера я попытался использовать эту команду heroku:

heroku run db:migrate

и после долгого ожидания он сказал, что он был в тайм-ауте

После многих попыток я обдумал это, и я обнаружил, что, так как другие команды дали один и тот же ответ, проблема в том, что мой компьютер (или моя сеть?) Не открывает порт 5000.

Могу ли я открыть это? Как в Ubuntu?

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


4
2018-02-28 15:42


происхождения


Все порты> 1024 могут быть связаны без специального разрешения по умолчанию в Ubuntu. Может быть, вы хотите, чтобы он был доступен из Интернета, и вы находитесь под маршрутизатором? Если это так, то вам нужно играть с конфигурацией вашего маршрутизатора (посмотрите на сопоставление портов, которое должно быть самым быстрым решением) - Andrea Corbellini
«Все порты> 1024 могут быть связаны без специального разрешения по умолчанию в Ubuntu». как? - Matteo Pagliazzi
и о конфигурации маршрутизатора вы знаете, где я могу его найти? - Matteo Pagliazzi
Страница конфигурации маршрутизатора. Если ваш ip равен 192.168.1.x, то, вероятно, 192.168.1.1. Найдите «Port Forwarding». Вам понадобятся имя и пароль. Если вы его не установили, Google поможет вам найти значения по умолчанию или посмотреть снизу, если ISP предоставил маршрутизатор. - jedijf
кажется, что мой маршрутизатор не настраивается ... - Matteo Pagliazzi


ответы:


Вы открываете порт с программой. Операционная система предоставляет для вас примитивы, которые обычно выполняются на уровне ОС, чтобы позволить порту принимать соединения. Для этого вам может понадобиться настроить брандмауэр или даже SELinux в зависимости от вашей установки (хотя я не видел стандартную установку Ubuntu, приносящую любую из них). @ Andrea указала, что вам не нужно специальное разрешение на программу, если она хочет открыть порт. Опять же, это программа, сервер, который будет прослушивать порт. Любая сетевая связь, использующая протокол, ориентированный на соединение (например, TCP / IP), нуждается в порте сервера прослушивания и подключении клиента. Я не знаю Героку, но, судя по внешнему виду команды, которую вы опубликовали, вы пытаетесь перенести базу данных из одного места в другое. Это зависит от того, открываете ли вы два подключения, один из которых извлекает данные, а другой - для записи. Если вы собираетесь получать соединения из Интернета, вам нужен порт на общедоступном IP-адресе, который поступает на порт 5000 вашего серверного компьютера. Если вы считаете, что у вас есть правильная установка, попробуйте эту команду:

sudo netstat -tnlp 

Он должен дать вам что-то вроде этого вывода:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      940/sshd   

Это так, для SSH-сервера, прослушивающего порт 22. У вас должно быть что-то похожее для порта 5000. Это так, а затем попробуйте подключиться из своей внутренней сети к IP-адресу сервера, а затем выяснить, как открыть его в Интернете. Вы можете сделать это с помощью команды telnet:

$ telnet 192.168.1.1 22
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.8p1 Debian-7ubuntu1
^\
Connection closed by foreign host.

Если вы получили слово «Connected», то ваш порт жив и пинается :) Это образец для прослушивания SSH-сервера, ваш вывод heroku должен быть другим.


2
2018-05-04 19:59