ОБНОВИТЬ:
Я открыл тикет с DO и был проинформирован, что они автоматически закрыли порт 8083 из-за уязвимости VestaCP, которая позволяла root-доступ к каплям. Хотя я счастлив, что узнал, что вызывает мою проблему, я разочарован в DO, что они не связались со своими пользователями, чтобы сообщить им об этом. Много часов было потрачено на эту проблему, часы, которые я не верну.
На моем сервере DO я привязал свой API к порту 8083, и до сегодняшнего дня он работал нормально. Теперь, когда я пытаюсь подключиться к своему API, время ожидания соединения прерывается. Я попытался подключиться к этому порту, используя nc -zv host port
но он тоже вешает трубку.
Как ни странно, изменение порта в моем API, его перекомпиляция и запуск работает отлично. Почти все остальные порты работают, кроме 8083.
я ssh
d в ящик и побежал nc -zv localhost 8083
и получил сообщение об успешном подключении. Я не думаю, что у меня есть брандмауэр, блокирующий его, потому что я запустил service iptables status
и это говорит iptables.service
не бегать.
Итак, теперь у меня есть два варианта: либо использовать другой порт для моего API (что проблематично, поскольку порт жестко запрограммирован в приложении Android, для которого я использую API), либо выяснить это.
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:2222 0.0.0.0:* LISTEN 1328/sshd
tcp6 0 0 :::8086 :::* LISTEN 1586/api1
tcp6 0 0 :::3306 :::* LISTEN 1343/mysqld
tcp6 0 0 :::2222 :::* LISTEN 1328/sshd
tcp6 0 0 :::8080 :::* LISTEN 1583/api2
tcp6 0 0 :::8082 :::* LISTEN 1574/api3
tcp6 0 0 :::8083 :::* LISTEN 1801/api4
tcp6 0 0 :::8084 :::* LISTEN 1571/api5
tcp6 0 0 :::8085 :::* LISTEN 1577/api6
В чем может быть проблема.
Существует множество причин, по которым служба, привязанная к порту tcp, не принимает соединение. Возможно, внутри приложения есть ACL, который принимает соединения только с определенного IP. Возможно, службе требуется подключение привратника для первоначального начала какого-либо сеанса, прежде чем другие подключения будут приняты на этом порту. Возможно, это сервис, который позволяет ограниченное количество подключений, и он заполнен. Возможно, iptables блокирует или фильтрует соединения. ... список можно продолжить.
Возможно, вам стоит посмотреть, к какому процессу привязан порт, посмотрев на netstat -an -p
чтобы выяснить PID и посмотреть, что это за процесс.