![Put 命令超时,但我可以访问服务器](https://linux22.com/image/635155/Put%20%E5%91%BD%E4%BB%A4%E8%B6%85%E6%97%B6%EF%BC%8C%E4%BD%86%E6%88%91%E5%8F%AF%E4%BB%A5%E8%AE%BF%E9%97%AE%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
我正在尝试连接到 FTP 以从 cent os 框上传文件。我可以访问服务器,但每当我尝试使用“put”命令上传时,连接就会超时。
我可以在本地机器上毫无问题地上传文件。这听起来像是端口问题。
我已经打开了出站端口 21。是否还需要打开其他端口才能进行上传?
日志
ftp> put localFile remote
227 Entering Passive Mode.
ftp: connect: Connection timed out
答案1
FTP 区分控制端口 (21) 和数据端口。后者用于传输文件和目录列表,使用哪些端口由被动模式下的服务器或主动模式下的客户端动态决定。因此,如果您只有一个只能按端口进行过滤的简单防火墙,您需要打开所有端口(例如关闭防火墙)或至少允许所有传出的 TCP 连接(被动模式,主动模式会更糟)。如果您的防火墙更智能并且理解 FTP,并且您的 FTP 连接未加密(例如 ftps),那么防火墙可以根据需求打开必要的端口。
如果您希望仅使用单个端口进行更严格的控制,则需要在客户端和服务器端使用不同的传输协议,例如 sftp(例如通过 ssh 进行文件传输)。