我正在寻找一种方法来调试/诊断由多个子网组成的工作局域网。
更具体地说,我正在尝试寻找一些好的工具(windows / linux),它们可以给我提供哪些端口是打开的或哪些机器/网络可以从给定机器访问的信息。
目前,我在 vSphere 中托管的虚拟 Windows 7 计算机上安装了 FileZilla FTP 服务器。我已验证 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/Network_Configuration
这里说:
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
但不知道如何解释上述输出。
我似乎可以通过端口 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 操作系统上运行。
另外,我会使用网络嗅探器tshark
或wireshark
在服务器端查看发生了什么。
请注意,有两种 FTP 模式:主动或被动:
- 主动模式使用端口 TCP/21 进行控制,使用端口 TCP/20 进行数据(端口固定的)。
- 被动模式使用端口 TCP/21 进行控制,使用 1024 至 65534 之间的任何 TCP 端口进行数据传输。这些端口是动态的。
就你的情况而言,我认为你的问题必须解决。从你的错误日志来看,你处于被动模式。
我会尝试主动模式。