什么时候应该将 ftp_pasv 设置为 TRUE?我可以一直这样做吗?如果没有,我有没有办法以编程方式确定服务器是否需要它?
2 回答
passive mode
并且active mode
是初始化与 FTP 服务器的数据连接的 2 种方法。
在 中时passive mode
,您的 FTP 客户端使用命令询问PASV
连接到 FTP 服务器的端口。服务器回复一个大数字,即 IP 和 PORT,可以建立连接(FTP 客户端 - 你 - 初始化连接)
在 中时active mode
,您的 FTP 客户端使用命令告诉 FTP 服务器PORT
它应该连接哪个端口(服务器初始化连接)。
因此,没有“方法”来确定要使用的方法。这取决于您的 FTP 服务器功能和您的情况。
首先,您必须检查您的 FTP 服务器是否接受这两种模式,active
以及passive
.
其次,您必须检查您作为客户端是否位于 NAT 路由器后面。如果是这种情况,那么使用被动模式会更容易(因为这是您的 FTP 客户端,它将初始化连接)。在其他情况下,您将需要进行一些路由器配置...
以编程方式,您可以尝试初始化数据连接PASV
并检查服务器响应。取决于响应代码,您应该能够知道是否必须切换模式。
被动模式比主动模式更常见。您可以向 FTP 服务器发出 FEAT 命令以查看是否支持 PASV(只要支持 FEAT 命令本身就可以使用)。
通常,您必须预先知道服务器是否“需要”被动模式。(联系服务器管理员了解是否支持被动模式)。