У меня есть несколько серверов, развернутых за NAT потребительского уровня (домашние маршрутизаторы). Мой клиент периодически подключается к этим серверам через порт 3000, в брандмауэре есть дырка для порта 3000 и порта 22 для отладки ssh.

Иногда клиент не может подключиться к одному или нескольким серверам. Как я могу отладить эту ситуацию? Я хочу иметь возможность определить, был ли сбой вызван брандмауэром, блокирующим мой клиент, или это была ошибка в коде сервера / клиента.

2 ответа2

2

Вы должны использовать netcat, это утилита командной строки Linux, которая позволит на лету создать сервер или клиент на удаленном компьютере и создать соответствующий сервер или клиент на вашем компьютере, затем вы отправляете сообщения с одного конца, и если это принят на другом конце, то порт открыт. https://www.digitalocean.com/community/tutorials/how-to-use-netcat-to-establish-and-test-tcp-and-udp-connections-on-a-vps

0

Не уверен, чтобы действительно понять вашу ситуацию.

Но у меня на уме три вещи.

Во-первых, если все ваши компьютеры находятся за маршрутизатором в одной сети, ничто не будет заблокировано (порты маршрутизатора блокируются снаружи, а не внутри).

Во-вторых, если вы можете использовать SSH, а ваше приложение использует порт 3333, возможно, ваш SSH-сервер не прослушивает порт 3333. По умолчанию SSH использует порт 22, если вы хотите использовать порт 3333 для ssh, вам нужно настроить все ваши машины на использование этого порта вместо 22.

Наконец, возможно, ваш брандмауэр просто блокирует порт, ищите документацию iptables, чтобы открыть этот порт (это брандмауэр, используемый во многих дистрибутивах).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .