VFP用myfll函数连接FTP直接卡死,10分种教你解决本质

2021-10-20 15:33:34 浏览数 (1)

最近有几位狐友一直提问为什么FTP会卡死,换个环境FTP就用不了,虽然在社群里别的狐友解决了问题,但很多人还是一知半解,不知道是怎么事,那今天猫猫来教大家,5分钟搞清FTP的本质。

文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,

FTP可以操作远程服务器上的文件操作的方式(如文件的增、删、改、查、传送等)。

FTP的模式问题

FTP可是分为主动模式,和被动模式,为什么狐友们会卡死,是因为模式没有搞清楚。

主动模式

主动模式是FTP的默认模式,也称为PORT模式

可以看到客户端用21端口发数据,服务器用20端口回发数据。

如果是云服务器,架设FTP服务器,就要在安全组里面开启21端口的“准入”和20端口的“准出”即可。

FTP服务器20端口连接客户端的数据端口时,有可能被客户端的防火墙拦截掉,这个时候要注意客户端这些是不是被拦了。

进入防火墙设置,需要我们的应用程序添加到防火墙的“允许的程序”列表中。

被动模式

被动模式也称为passive模式。如果主动模式实在用不了,那么就来用这个被动模式好了。

第一步,客户端用端口N主动连接服务器端口21,并发送PASV命令,告诉服务器用“被动模式”,连接建立成功后,服务器开启一个动态数据端口P(注:动态端口是随机的),通过PORT命令将P端口告诉客户端。

第二步,客户端的端口N 1去连接服务器刚刚提供的数据端口P,建立数据连接。

N为控制端口, P为动态数据端口,每次连接都不同。A客户端连接过来用的是6008端口,B客户端连接过来可能用的就是7009,不过P端口的范围是可以设置的。在FTP软件中设置好这个范围,记得在防火墙设置或云服务安全组设置这个端口范围允许访问。

防火墙设置总结

FTP主动模式下防火墙设置

(1)服务器没有“物理防火墙”的情况下,只需要在服务器操作系统中开启21端口的准入,20端口的准出默认是允许的(Windows系统防火墙默认是不拦截“准出”的)。

(2)服务器有“物理防火墙”的情况下,需要在“物理防火墙”中开启21端口的准入,20端口的准出。

(3)客户端需要设置“允许应用程序通过防火墙”(WinSCP.exe、FlashFXP等)

FTP主动模式下防火墙设置 (1)服务器需要开启21端口准入,并设置被动模式数据端口范围P,并在防火墙中开启P的准入。

(2)客户端一般不需要设置任何防火墙,因为N和N 1一般是可以出去的。

VFP访问FTP服务器

木瓜的myfll对FTP支持还是很完整的,主被动模式用FtpSetPasv函数来设定。

关于FTP的未来

谷歌早前曾表示,这是一种未加密的协议,并且使用人数正在逐渐减少。而 Mozilla 插件社区经理 Caitlin Neiman 则表示,移除 FTP 支持不会对用户造成较大影响。大多数扩展可能会传递 FTP 的地方,如代理或 webRequest 的过滤器,都不会报错,而是会提示用户启动 FTP 应用程序来处理某些链接。

据悉,Firefox 内置的 FTP 实现已在 Firefox Nightly 和 Beta 预发布版本中被禁用,并将在今年 4 月 19 日的 Firefox 88 版本中被禁用。在 Firefox 90 中,该实现将被完全移除。在 Firefox 中禁用 FTP 后,浏览器将以与其他协议处理程序相同的方式将 ftp:/ 链接委托给外部应用程序。

0 人点赞