首页 > 其他分享 >CH9121 FTP使用详解

CH9121 FTP使用详解

时间:2024-02-22 13:45:35浏览次数:22  
标签:FTP 端口 详解 服务器 CH9121 端口号 客户端

一、FTP简介:

FTP是基于TCP应用层的网络文件传输协议,支持两种模式:Standard (PORT方式,主动方式),Passive (PASV,被动方式)。采用明文通信不加密。

 1、Port模式

FTP 客户端首先和服务器的TCP 21端口建立连接,用来发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。

 2、Passive模式

建立控制通道和Standard模式类似,但建立连接后发送Pasv命令。服务器收到Pasv命令后,打开一个临时端口(端口号大于1023小于65535)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口传送数据。

PS:很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。

二、CH9121做FTP客户端访问服务器

1、Port模式

将CH9121的端口1配置为TCP CLIENT模式,CH9121的端口可以随机也可以固定,目的IP为FTP服务器的IP地址,目的端口号为FTP服务器的端口号默认为21。

将CH9121的端口2配置为TCP SERVER模式,CH9121的端口设置后需要记一下后边会用到,目的端口号为FTP服务器的端口号默认为20。

配置好CH9121连接FTP服务器即可通过端口1的串口获取FTP服务器的如下信息,220表示FTP服务器已经就绪。

端口1的串口收到220后即可发送USER与PASS用以登录FTP服务器,

◇USER anonymous

◆331 User name ok, need password

◇PASS 123456

◆230 User logged in

当服务器回复230即表示CH9121登录FTP服务器成功,随后可通过建立数据通道的连接实现数据传输,注意PORT为主动模式CH9121主动告诉FTP服务器自己开放的数据传输IP与端口,(192,168,100,200)为IP,(11,184)为端口计算方法为11*256+184=3000,也就是CH9121端口2配置的本地端口号。

通过CH9121的端口1的串口发送PORT命令,

◇PORT 192,168,100,200,11,184

◆200 PORT command successful.

当服务器回复200即表示服务器收到了CH9121提供的IP与端口号,当要传输数据时FTP服务器会通过20端口与之建立连接实现数据收发。

比如通过CH9121端口1的串口发送LIST命令获取FTP服务器的根目录

◇LIST

◆150 File status OK ; about to open data connection

当服务器返回150后,服务器会通过20端口主动与CH9121的端口2建立连接并发送根目录信息。

◆drwxrwxrwx 1 owner group 0 Feb 21 19:46 .

dr-xr-xr-x 1 owner group 0 Oct 10 17:38 ..

-rwxrwxrwx 1 owner group 196939 Feb 04 10:01 CH9120 TFTP使用详解.pdf

-rwxrwxrwx 1 owner group 153 Dec 12 16:22 README

-rwxrwxrwx 1 owner group 47 Feb 03 17:04 test.c

需要注意的是每次数据命令执行完毕,服务器的数据端口都会自动关闭,下次通信需要CH9121重新发送PORT提供数据端口的信息。

2、Passive模式

CH9121被动模式目前仅适用于数据端口固定的FTP服务器,与主动的区别是CH9121的端口2需要配置为TCP客户端模式,目的端口为FTP服务器的端口,端口号可以通过CH9121端口1发送PASV获取。

◇PASV

◆227 Entering passive mode (192,168,100,111,61,111)

当FTP服务器回复227 表示FTP服务器处于被动模式且开放的数据通信端口信息为(192,168,100,111,61,111)其中(192,168,100,111)为服务器的IP,(61,111)为端口,可通过61*256+111=15727获取端口号为15727,将CH9121的端口2目的端口号设为15727即可,随后再次登录FTP服务器,发送PASV使得服务器进入被动模式,CH9121的端口2就可以与服务器的数据端口建立连接,之后的增删改查操作与主动模式相同。

需要注意的是使用CH9121被动模式与FTP服务器通信一定要先把服务器的数据端口固定不然无法与之建立数据通信,如果采用CH392、CH395或其他芯片则不需要指定服务器的数据端口号,只需要通过PASV获取服务器端口信息后创建相应的socket即可。

标签:FTP,端口,详解,服务器,CH9121,端口号,客户端
From: https://www.cnblogs.com/llidd/p/18027129

相关文章

  • Css中的display属性linline-block(行内区块元素)的详解和应用
    原文链接:https://www.cnblogs.com/lijinwen/p/5679864.html说inline-block(行内区块元素)之前,先说下他另外的2个兄弟display:inline;内联元素,简单来说就是在同一行显示。他没有高度,给内联元素设置width和height是没效果的。display:block;块级元素,简单来说就是就是有换行,会换......
  • 神经网络优化篇:详解TensorFlow
    TensorFlow先提一个启发性的问题,假设有一个损失函数\(J\)需要最小化,在本例中,将使用这个高度简化的损失函数,\(Jw=w^{2}-10w+25\),这就是损失函数,也许已经注意到该函数其实就是\({(w-5)}^{2}\),如果把这个二次方式子展开就得到了上面的表达式,所以使它最小的\(w\)值是5,但假设不知道......
  • Flink教程(6)-Flink Window 详解
    Flink教程(6)-FlinkWindow详解文章目录FlinkWindowwindow原理与分类基于时间的TimeWindow基于计数的CountWindowwindowapi1)滚动时间窗口2)滑动时间窗口3)会话窗口4)滚动计数窗口5)滑动计数窗口6)全量窗口7)简写方式8)WindowAssigner9)开窗函数(windowfunction)10)案例:自定义数据......
  • git reset 命令详解 git revert命令详解。
    https://blog.csdn.net/wangdawei_/article/details/124543824gitreset命令详解reset命令介绍参数使用commit还没有pushcommit已经push补救gitrevert命令revert说明举例命令reset命令介绍gitreset命令格式为:gitreset[--soft|--mixed|--hard][<commitid>]在git......
  • Docker Exec 命令详解与实践指南
    简介DockerExec是Docker中一个非常有用的命令,它允许您在正在运行的容器内部执行命令。这对于调试、管理和与容器进行交互非常有帮助。在本篇文章中,我们将深入探讨DockerExec命令的使用方法,并提供一些实用的示例,旨在帮助初学者更好地理解和运用这一功能。什么是DockerE......
  • iptables命令详解和举例
     1、防火墙概述          防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种。无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘。而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略,规则,以达到让......
  • c# 代码操作ftp服务器文件
    好久不见,我又回来了。给大家分享一个最近c#代码操作ftp服务器的代码示例 1publicabstractclassFtpOperation2{3///<summary>4///FTP服务器地址5///</summary>6privatestringftpServer;78///<s......
  • 项目开发中的权限管理设计方案详解
    为什么需要权限管理日常工作中权限的问题时时刻刻伴随着我们,程序员新入职一家公司需要找人开通各种权限,比如网络连接的权限、编码下载提交的权限、监控平台登录的权限、运营平台查数据的权限等等。在很多时候我们会觉得这么多繁杂的申请给工作带来不便,并且如果突然想要查一些数......
  • CompletableFuture异步编程详解
    Future介绍先来回顾下Future,Future是JDK1.5中添加的接口,主要功能为:获取并发的任务完成后的执行结果;能够取消并发执行中的任务;判断并发任务是否执行完成;但Future也有着非常明显的缺点:阻塞:调用get()方法会一直阻塞,直到等待直到计算完成;异常处理:Future没有提供任何异常处理的方......
  • NETGEAR WNDR4300路由器tftp方式 刷机
    1、使用网线将路由器的lan口(黑色)和hostpc的网口相连。2、将路由器断电,用曲别针或其他工具,一直按住路由器背面的reset口。3、打开路由器电源开关,观察电源指示灯(此时保持按住reset按钮不要松手),直到电源灯由橙色闪烁状态变到绿色闪烁状态(说明设备已经进入到了TFTP修复模式)。4、......