Назад | Перейти на главную страницу

Порт не отвечает удаленно, но отображается как открытый локально

ОБНОВИТЬ:

Я открыл тикет с DO и был проинформирован, что они автоматически закрыли порт 8083 из-за уязвимости VestaCP, которая позволяла root-доступ к каплям. Хотя я счастлив, что узнал, что вызывает мою проблему, я разочарован в DO, что они не связались со своими пользователями, чтобы сообщить им об этом. Много часов было потрачено на эту проблему, часы, которые я не верну.

На моем сервере DO я привязал свой API к порту 8083, и до сегодняшнего дня он работал нормально. Теперь, когда я пытаюсь подключиться к своему API, время ожидания соединения прерывается. Я попытался подключиться к этому порту, используя nc -zv host port но он тоже вешает трубку.

Как ни странно, изменение порта в моем API, его перекомпиляция и запуск работает отлично. Почти все остальные порты работают, кроме 8083.

я sshd в ящик и побежал 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 и посмотреть, что это за процесс.