[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[原创] 【续】[一日一教学](40)传输文件:ftp

【原】[一日一教学]批处理系列帖子索引 http://bbs.bathome.net/thread-2576-1-1.html
【续】[一日一教学]批处理系列帖子索引 http://bbs.bathome.net/thread-13798-1-1.html
零、概述及搭建环境介绍
FTP(文件传输协议)是一种用于在客户端和服务器之间传输文件的协议。Windows 的 CMD 提供了内置的 ftp 命令工具,支持基本的 FTP 操作。
FTP属于c/s模式,既客户端/服务器模式,这里已经提前利用Linux搭架了FTP服务器端:IP地址为192.168.220.138(Linux版本为Kylin Linux Advanced Server V10 ),客户端在win11中管理员模式启动cmd执行FTP命令。

一、帮助信息
以下是通过 ftp /? 获取到官方帮助信息:
  1. C:\Users\HelloWorld>ftp /?
  2. 将文件传送到运行 FTP 服务器服务(经常称为后台程序)的计算机以及将文件从该计算机
  3. 传出。可以交互使用 Ftp。
  4. FTP [-v] [-d] [-i] [-n] [-g] [-s:filename] [-a] [-A] [-x:sendbuffer] [-r:recvbuffer] [-b:asyncbuffers] [-w:windowsize] [host]
  5.   -v              禁止显示远程服务器响应。
  6.   -n              禁止在初始连接时自动登录。
  7.   -i              关闭多文件传输过程中的
  8.                   交互式提示。
  9.   -d              启用调试。
  10.   -g              禁用文件名通配(请参阅 GLOB 命令)。
  11.   -s:filename     指定包含 FTP 命令的文本文件;命令
  12.                   在 FTP 启动后自动运行。
  13.   -a              在绑字数据连接时使用所有本地接口。
  14.   -A              匿名登录。
  15.   -x:send sockbuf 覆盖默认的 SO_SNDBUF 大小 8192。
  16.   -r:recv sockbuf 覆盖默认的 SO_RCVBUF 大小 8192。
  17.   -b:async count  覆盖默认的异步计数 3
  18.   -w:windowsize   覆盖默认的传输缓冲区大小 65535。
  19.   host            指定主机名称或要连接到的远程主机
  20.                   的 IP 地址。
  21. 注意:
  22.   - mget 和 mput 命令将 y/n/q 视为 yes/no/quit。
  23.   - 使用 Ctrl-C 中止命令。
复制代码
二、选项、参数详解
在 Windows 的 cmd 环境中,FTP 命令支持多种选项,以下是其核心功能及常用选项说明。
1、连接到FTP服务器
FTP服务器是设置的匿名登录,输入用户名anonymous,密码为空(输入密码的时候直接回车即可)。

方法一:ftp host/ip 直接指定要连接的FTP服务器ip
  1. C:\Users\HelloWorld>ftp 192.168.220.138
  2. 连接到 192.168.220.138。
  3. 220 (vsFTPd 3.0.3)
  4. 200 Always in UTF8 mode.
  5. 用户(192.168.220.138:(none)): anonymous
  6. 331 Please specify the password.
  7. 密码:
  8. 230 Login successful.
复制代码
方法二:先FTP,在FTP中再连接到具体IP
  1. C:\Users\HelloWorld>ftp
  2. ftp> open 192.168.220.138 21
  3. 连接到 192.168.220.138。
  4. 220 (vsFTPd 3.0.3)
  5. 200 Always in UTF8 mode.
  6. 用户(192.168.220.138:(none)): anonymous
  7. 331 Please specify the password.
  8. 密码:
  9. 230 Login successful.
复制代码
2、查看FTP服务器目录结构,并下载文件

选择PASV模式。
  1. ftp> quote PASV
  2. 227 Entering Passive Mode (192,168,220,138,117,48).
复制代码
2.1查看用dir或者ls都可以。
  1. ftp> dir
  2. 200 PORT command successful. Consider using PASV.
  3. 150 Here comes the directory listing.
  4. dr-xr-xr-x    3 0        0            2048 Mar 15  2023 EFI
  5. -r--r--r--    1 0        0             438 Mar 31  2023 LICENSE
  6. dr-xr-xr-x    2 0        0          538624 Mar 24  2023 Packages
  7. -r--r--r--    1 0        0            2883 Mar 31  2023 TRANS.TBL
  8. dr-xr-xr-x    3 0        0            2048 Mar 15  2023 images
  9. dr-xr-xr-x    2 0        0            2048 Mar 15  2023 isolinux
  10. dr-xr-xr-x    5 0        0            2048 Mar 24  2023 kylin-sm-package
  11. dr-xr-xr-x    2 0        0            2048 Mar 15  2023 manual
  12. dr-xr-xr-x    2 0        0            4096 Mar 24  2023 repodata
  13. 226 Directory send OK.
  14. ftp: 收到 596 字节,用时 0.02秒 29.80千字节/秒。
  15. ftp> ls
  16. 200 PORT command successful. Consider using PASV.
  17. 150 Here comes the directory listing.
  18. EFI
  19. LICENSE
  20. Packages
  21. TRANS.TBL
  22. images
  23. isolinux
  24. kylin-sm-package
  25. manual
  26. repodata
  27. 226 Directory send OK.
  28. ftp: 收到 92 字节,用时 0.00秒 30.67千字节/秒。
复制代码
2.2下载文件
下载文件命令格式为:
get remote_filename [local_filename]  # 下载单个文件
  1. get FTP服务器文件 本地完全路径
复制代码
实操命令:
  1. ftp> get LICENSE c:/LICENSE
  2. 200 PORT command successful. Consider using PASV.
  3. 150 Opening BINARY mode data connection for LICENSE (438 bytes).
  4. 226 Transfer complete.
  5. ftp: 收到 438 字节,用时 0.33秒 1.34千字节/秒。
复制代码
3、上传文件
上传文件命令格式为:
put local_filename [remote_filename]  # 上传单个文件
  1. put 本地完全路径 FTP服务器文件名
复制代码
实操命令:
  1. ftp> put c:/LICENSE1 LICENSE1
复制代码
4、让FTP使用脚本,自动下载文件
-s 选项
用刚才下载的过程制作一个脚本1.txt:
  1. user anonymous anonymous@example.com
  2. get LICENSE c:/LICENSE
  3. quit
复制代码
用ftp -s 执行这个1.txt脚本
  1. C:\Users\HelloWorld>ftp -s:c:\1.txt 192.168.220.138
  2. 连接到 192.168.220.138。
  3. 220 (vsFTPd 3.0.3)
  4. 200 Always in UTF8 mode.
  5. 用户(192.168.220.138:(none)):
  6. 331 Please specify the password.
  7. 530 Login incorrect.
  8. 登录失败。
  9. ftp> quit
  10. 221 Goodbye.
复制代码
最后的quit自动执行了,之所以没有登录成功是FTP匿名登录的机制问题,这里没有模拟回车(空密码)的命令。

三、FTP的一些拓展知识
这里的重点可能不是FTP命令本身(有很多其他的FTP工具),而是FTP服务器端的搭建、配置,以及防火墙、SELinux的配置。
FTP服务器端的搭建、配置(这次Linux的FTP服务器是搭建在vmware workstation中,开启了虚拟网络编辑器的nat模式的映射21、30000-30003端口),以及防火墙(关闭了服务器防火墙)、SELinux的配置(关闭了SELinux)。
1

评分人数

返回列表