2

Я пытался использовать ncat («значительно улучшенное переопределение netcat»), чтобы пообщаться с другом (и, в конечном итоге, хочу отправить большой файл, но я знаю, что смогу заставить его работать, как только я включу чат в работу).

У нас обоих есть винда.

На моем конце я напечатал:

ncat -l 3333

На его конце у меня был его тип:

ncat [my public IP] 3333

Ничего не случилось на моем конце, в то время как его завершили с "Ncat:." и вернулся к приглашению.

Я не мог понять, что делать, чтобы это исправить, поэтому я решил, пока он занят, я опробую это на двух моих ноутбуках (один с Windows, другой с Linux, не уверен, что это должно иметь значение),

Я нашел те же результаты («Ncat:.», А затем вернулся к запросу), только когда я выдал

ncat -l 3333

из Linux и

ncat [my public IP] 3333

из Windows.

Единственный сценарий , в котором чат / передачи файлов сделал работу, когда я слушал с Windows , и сделал ncat [my public IP] 3333 с Linux.

Есть идеи, почему это происходит, и что я могу сделать, чтобы это исправить?

2 ответа2

2

Итак, в последней части вашего поста говорилось, что он работает только локально, когда вы слушаете из windows и запускаете клиент из Linux.

Скорее всего, ваш брандмауэр Linux (скорее всего, UFW - вы на Ubuntu или вариант?) Установлен для разрешения исходящих и запрета входящих, если это не установлено вашими исходящими соединениями. Каким-то образом ваш брандмауэр Windows настолько счастлив, что вы слушаете с помощью ncat, что он пропускает входящий трафик.

В Linux запустите: sudo systemctl status ufw Если ufw работает, тогда запустите: sudo ufw allow 3333 Затем попробуйте прослушать Linux на порту 3333 и посмотреть, работает ли он. Не забудьте запретить порт 3333, когда закончите с ncat - тот же синтаксис, но используйте deny вместо allow.

В первом случае, когда ваш друг не смог подключиться к вашей машине, поскольку ваша машина Windows может успешно прослушивать и инициировать через локальную сеть, почти гарантируется, что порт 3333 на вашей машине не будет перенаправлен на ваш маршрутизатор. Когда ваш друг пытается ncat ваш IP, он запрашивает услугу с вашего маршрутизатора, а не с вашего компьютера.

Если вы входите в интерфейс администратора вашего маршрутизатора, у него должна быть опция для переадресации / запуска портов. Это может быть в расширенных настройках. Удачи и дайте нам знать, если у вас есть еще вопросы.

PS. Если вы поработаете с вашим другом по Интернету, я бы предложил отключить его после подтверждения концепции. Если вы хотите продолжить выставлять порт вашего компьютера во всемирной паутине для чата ncat, то вы должны использовать ssl с ncat и следить за активностью порта.

1

Убедитесь, что на этом пути нет брандмауэров (чтобы проверить Wireshark, убедитесь, что пакет TCP SYN поступил в прослушивающий экземпляр) и убедитесь, что переадресация портов настроена правильно, если вы подключаетесь к Интернету через брандмауэр или домашний маршрутизатор. Если вы не получаете пакет TCP SYN, возвращайтесь к исходному компьютеру, пока не увидите, где он останавливается. Если вы видите входящий пакет TCP SYN, за которым следует исходящий пакет TCP SYN/ACK, убедитесь, что пакет прибывает на исходный узел и отвечает TCP ACK.

Исходя из того, что он работает при прослушивании из Windows и ncatting из Linux, я бы проверил настройки персонального брандмауэра для брандмауэров как в Linux, так и в Windows и выяснил, настроены ли они по-разному. Убедитесь, что вы разрешаете входящий трафик на порт, который вы слушаете (в данном случае 3333).

Одно отличие, которое существует в реальном Netcat между Linux и Windows, состоит в том, что в Windows есть флаг -L, который вызывает постоянное прослушивание после закрытия. Возможно, это не имеет никакого отношения к этой проблеме, но я подумал, что стоит упомянуть.

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