Я ищу способ отладки/диагностики локальной сети на моей работе, которая состоит из нескольких подсетей.
В частности, я пытаюсь найти хорошие инструменты (Windows/Linux), которые могут предоставить мне информацию о том, какие порты открыты или какие машины/сети доступны с данной машины.
В настоящее время я установил FTP-сервер FileZilla на виртуальную машину Windows 7, размещенную в vSphere. Я проверил, что FTP-сервер работает как служба и настроен на одного пользователя, admin
у которого есть одна общая папка c:\test
. Но когда я пытаюсь подключиться со своего ноутбука, журнал сервера выдает:
(000012)18-12-2013 15:46:28 - admin (172.22.74.144)> PWD
(000012)18-12-2013 15:46:28 - admin (172.22.74.144)> 257 "/" is current directory.
(000012)18-12-2013 15:46:28 - admin (172.22.74.144)> TYPE I
(000012)18-12-2013 15:46:28 - admin (172.22.74.144)> 200 Type set to I
(000012)18-12-2013 15:46:28 - admin (172.22.74.144)> PASV
(000012)18-12-2013 15:46:28 - admin (172.22.74.144)> 227 Entering Passive Mode (172,22,80,8,192,35)
(000012)18-12-2013 15:46:28 - admin (172.22.74.144)> MLSD
(000012)18-12-2013 15:46:39 - admin (172.22.74.144)> 425 Can't open data connection.
(000012)18-12-2013 15:48:39 - admin (172.22.74.144)> 421 Connection timed out.
(000012)18-12-2013 15:48:39 - admin (172.22.74.144)> disconnected.
Я попытался прочитать это руководство, но не вижу, что именно нужно: https://wiki.filezilla-project.org/Конфигурация_сети
И здесь говорится:
https://forum.filezilla-project.org/viewtopic.php?f=6&t=24925
этот ftp использует tcp, так нужно ли мне перенаправлять некоторые порты?
На сервере Windows я попробовал запуститьnetstat -an
который дает:
TCP [::]:21 [::]:0 LISTENING
TCP [::]:135 [::]:0 LISTENING
TCP [::]:445 [::]:0 LISTENING
TCP [::]:3389 [::]:0 LISTENING
TCP [::]:49152 [::]:0 LISTENING
TCP [::]:49153 [::]:0 LISTENING
TCP [::]:49154 [::]:0 LISTENING
TCP [::]:49155 [::]:0 LISTENING
TCP [::]:49157 [::]:0 LISTENING
TCP [::1]:14147 [::]:0 LISTENING
Но не знаю, как интерпретировать приведенный выше вывод.
Кажется, я могу подключиться к машине через telnet на порт 21 telnet my-windows-server 21
:
220-FileZilla Server version 0.9.41 beta
220-written by Tim Kosse ([email protected])
220 Please visit http://sourceforge.net/projects/filezilla/
Означает ли это, что порт открыт?
В более общем плане, что следует проверить в первую очередь при решении подобной проблемы?
решение1
Фильтруются ли ваши подсети (ACL, брандмауэр...)?
В описании above output
, о котором вы говорите, показаны как прослушиваемые, так и не прослушиваемые порты на вашем сервере в числовых адресах, а также интерфейс, который они прослушивают (и протокол TCP/UDP).
Для отладки этого, Telnet host port
хорошей отправной точкой будет проверить, слушает ли порт и открыт ли он по сети, но будет работать только против порта TCP. В вашем случае, да, это означает, что порт 21 открыт.
Вы также можете использовать его nmap myserver
для получения списка открытых портов для заданного целевого хоста, он также может проверять порты UDP и работает как на Windows, так и на Linux OS.
Кроме того, я бы использовал сетевой анализатор, например, tshark
на wireshark
стороне сервера, чтобы увидеть, что происходит.
Обратите внимание, что существует 2 режима FTP: активный и пассивный:
- Активный режимиспользует порт TCP/21 для управления и порт TCP/20 для данных (портызафиксированный).
- Пассивный режимиспользует порт TCP/21 для управления и любой порт TCP от 1024 до 65534 для данных. Эти портыдинамический.
В вашем случае, я думаю, что ваша проблема должна иметь дело с этим. Что касается вашего журнала ошибок, похоже, вы находитесь в пассивном режиме.
Я бы попробовал активный режим.