专栏首页加菲猫的VFPVFP用myfll函数连接FTP直接卡死,10分种教你解决本质

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

最近有几位狐友一直提问为什么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:/ 链接委托给外部应用程序。

本文分享自微信公众号 - 加菲猫的VFP(VFPPLUS),作者:加菲猫的VFP

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-10-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 用WINSOCK发送Email,调用FTP

    猫猫用WSOCK32.DLL实现了MQTT协议的发送,其实在TCP/IP上面的所有协议都有完整的文档,你都可以去实现了。到了无人区,很多地方都需要我们去探索,去...

    加菲猫的VFP
  • 在BS中,为什么要用异步操作

    VFP,Javascript语言的执行环境是"单线程"。 所谓"单线程",就是指一次只能完成一件任务。如果有多个任务,就必须排队,前面一个任务完成,再执行后面一...

    加菲猫的VFP
  • 【STM32H7】第8章 ThreadX GUIX移植到STM32H7(MDK AC6)

    最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=98429

    armfly
  • 【STM32H7】第7章 ThreadX GUIX移植到STM32H7(MDK AC5)

    最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=98429

    armfly
  • Nginx + VFP FastCGI初起步

    众所周知IIS的性能令人诟病,早期VFP开发WEB也没更好的方案,采用了CGI的方式运行于IIS内,好处是每次WEB调用,VFP程序运行后就结束,不存在内存泄漏...

    加菲猫的VFP
  • 利用猫框三层框架开发(C+B+App/Api/S)食堂管理项目成功案例

    本人属于业余中业余VFP爱好者,也是第一次写这种分享,文字功底能力有限,大家!见好见好了!

    加菲猫的VFP
  • 我和PB独立开发者通话60分钟,才明白人如何对自己狠得高级

    在大家的印象大家都认为VFP是单枪匹马一个人闯天下,其实软件行业独立开发者很多的,不单单VFP,比如PB开发者。昨天一位PB开发者吴总打了个电话给我,跟我交流了...

    加菲猫的VFP
  • 【第3版emWin教程】第7章 emWin6.x的裸机方式移植(STM32H7之RGB接口)

    教程不断更新中:http://www.armbbs.cn/forum.php?mod=viewthread&tid=98429

    armfly
  • 《安富莱嵌入式周报》第231期:2021.09.20--2021.09.26

    往期周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&ty...

    armfly
  • 【STM32F429】第8章 ThreadX GUIX移植到STM32F429(MDK AC6)

    最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=98429

    armfly
  • 【STM32F429】第7章 ThreadX GUIX移植到STM32F429(MDK AC5)

    最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=98429

    armfly
  • 【RL-TCPnet网络教程】第37章 RL-TCPnet之FTP客户端

    本章节为大家讲解RL-TCPnet的FTP客户端应用,学习本章节前,务必要优先学习第35章的FTP基础知识。有了这些基础知识之后,再搞本章节会有事半功倍的效果。

    armfly
  • 【RL-TCPnet网络教程】第36章 RL-TCPnet之FTP服务器

    本章节为大家讲解RL-TCPnet的FTP服务器应用,学习本章节前,务必要优先学习第35章的FTP基础知识。有了这些基础知识之后,再搞本章节会有事半功倍的效果。

    armfly
  • 多线程,是狐友们的意难平,谁能搞定它价值百万。

    Email: kevin@kevinragsdale.nethttp://kevinragsdale.net

    加菲猫的VFP
  • 铁人三项赛数据赛 writeup

    这次的数据分析赛相对上个星期 05.05 的数据分析赛,个人觉得虽然简单了很多,但其中值得学习的知识点也不少呀。

    信安之路
  • xftp5 中文破解版

    xftp5破解版是一款基于MS windows平台上的使用灵活且功能强大的SFTP、FTP 文件传输软件,它可以在 UNIX/Linux 和 Windows P...

    凯哥Java
  • 【STM32H7教程】第51章 STM32H7的LTDC应用之LCD汉字显示和2D图形显示

    完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980

    armfly
  • 【第3版emWin教程】第8章 emWin6.x的带OS方式移植(STM32H7之RGB接口)

    教程不断更新中:http://www.armbbs.cn/forum.php?mod=viewthread&tid=98429

    armfly
  • 在VFP9中利用CA对远程数据的存取进行管理(一)

    CursorAdapter既可以对本地数据进行存取,又可以对远程的不同类型的数据源进行存取,不需要关心数据源,只要对 CursorAdapter的属性进行适当的...

    加菲猫的VFP

扫码关注云+社区

领取腾讯云代金券