1.软件准备
软件网址:
http://www.downcc.com/soft/15160.html
windows端:
软件:简单ftp Server
验证身份
用户:ftpuser 密码:123456
服务端口:21 最大连接数:100
共享目录: C:\Users\86159\Pictures
1. 启动之后cmd打开命令行:netstat -ano | find ":87" 查看端口有没有起来
2. 开放windows防火墙:21端口
3. 查看windows的ip地址
C:\Users\86159>ipconfig
Windows IP 配置
以太网适配器 以太网 2:
连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::e5f2:f156:efc5:439f%3
IPv4 地址 . . . . . . . . . . . . : 172.100.20.7
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 172.100.20.1
linux端:
yum install -y ftp
ftp -p 172.100;.20.7 enter 输入密码
dir 查看目录
get /home/gegewu/下载文件
下载文件:
227 Entering Passive Mode (172,100,20,7,56,182).
150 Opening data connection for directory list.
drw-rw-rw- 1 ftp ftp 0 Jun 09 09:32 .
drw-rw-rw- 1 ftp ftp 0 Jun 22 15:40 ..
-rw-rw-rw- 1 ftp ftp 1855 May 10 16:45 amelaxie-10187819-weixin.py
-rw-rw-rw- 1 ftp ftp 5149898 May 07 17:42 CloudEngine 8800, 7800, 6800, 5800 V200R005C10 MIB????.chm
-rw-rw-rw- 1 ftp ftp 696067 May 18 16:18 H3C S5500HI????MIB????????.pdf
-rw-rw-rw- 1 ftp ftp 7486201 May 07 17:41 S9300, S9300X V200R020C00 MIB????.chm
-rw-rw-rw- 1 ftp ftp 0 May 25 09:25 ???? ????????.txt
226 File sent ok
ftp> pwd
257 "/" is current directory.
ftp> get amelaxie-10187819-weixin.py
local: amelaxie-10187819-weixin.py remote: amelaxie-10187819-weixin.py
227 Entering Passive Mode (172,100,20,7,56,225).
150 Opening data connection for amelaxie-10187819-weixin.py.
226 File sent ok
1855 bytes received in 0.00 secs (14.0402 MB/s)
ftp> exit
221 Goodbye.
root@gegewu1:/home/gegewu# ls
1.sh.bak amelaxie-10187819-weixin.py cike mydocker pgbak server.log TPG-Nightinagle zabbix
1.txt cacti data nohup.out scripts test webapi.log zz.log
root@gegewu1:/home/gegewu# vim amelaxie-10187819-weixin.py
root@gegewu1:/home/gegewu#
成功!
f扩展:tp基础操作
不想下载客户端,懒得写上传脚本,直接通过ftp命令把文件丢到服务器。
目标:将本地目录/local_a下的内容,上传到服务器/server_b目录中。
步骤:
1、ftp登陆: 输入命令 sftp username@ip 接着提示输入密码,直接输入密码即可。此时,默认进入的是用户username的用户文件夹(目录)内
2、 ls 常看服务器当前目录内容: 输入命令
3、 cd /server_b 进入目录/server_b : 输入命令
4、 _a: lcd /local_a 进入本地目录/local输入命令
5、 lls 切换本地目录用lcd 查看本地当前目录下的内容
6、 put ./ 将本地local_a内的所有文件上传到服务器server_b中
7、 put -r ./ 在 put 命令后加上 -r 可将文件夹及文件夹下的内容也上传上去
8、put filename 若是单独上传某个文件即可,filename表示文件名, 如上传的是某个文件夹,则输入put -r foldername
9、退出ftp对话框: 输入 bye或者quit
在ftp命令行下常用的其他命令:
1、 mkdir folderName 新建文件夹
2、 rename preFolderName newFolderName 修改文件夹名称
3、 rmdir folderName 删除空文件夹 ,非空文件夹不能直接删除
4、 get -r foldername 下载文件 get filename , 下载文件夹
---------------------------------------------------------------------------------->
参考:https://blog.csdn.net/qq_42083847/article/details/99968146
FTP>ascii: 设定以ASCII方式传送文件(缺省值) FTP>bell: 每完成一次文件传送,报警提示. FTP>binary: 设定以二进制方式传送文件. FTP>bye: 终止主机FTP进程,并退出FTP管理方式. FTP>case: 当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母. FTP>cd: 同UNIX的CD命令. FTP>cdup: 返回上一级目录. FTP>chmod: 改变远端主机的文件权限. FTP>close: 终止远端的FTP进程,返回到FTP命令状态, 所有的宏定义都被删除. FTP>delete: 删除远端主机中的文件. FTP>dir [remote-directory] [local-file] 列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件. FTP>get [remote-file] [local-file] 从远端主机中传送至本地主机中. FTP>help [command] 输出命令的解释. FTP>lcd: 改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录. FTP>ls [remote-directory] [local-file] 同DIR. FTP>macdef: 定义宏命令. FTP>mdelete [remote-files] 删除一批文件. FTP>mget [remote-files] 从远端主机接收一批文件至本地主机. FTP>mkdir directory-name 在远端主机中建立目录. FTP>mput local-files 将本地主机中一批文件传送至远端主机. FTP>open host [port] 重新建立一个新的连接. FTP>prompt: 交互提示模式. FTP>put local-file [remote-file] 将本地一个文件传送至远端主机中. FTP>pwd: 列出当前远端主机目录. FTP>quit: 同BYE. FTP>recv remote-file [local-file] 同GET. FTP>rename [from] [to] 改变远端主机中的文件名. FTP>rmdir directory-name 删除远端主机中的目录. FTP>send local-file [remote-file] 同PUT. FTP>status: 显示当前FTP的状态. FTP>system: 显示远端主机系统类型. FTP>user user-name [password] [account] 重新以别的用户名登录远端主机. FTP>? [command]: 同HELP. [command]指定需要帮助的命令名称。如果没有指定 command,ftp 将显示全部命令的列表。 FTP>! 从 ftp 子系统退出到外壳。 参考: https://www.cnblogs.com/huzixia/p/10390001.html#:~:text=ftp%E5%91%BD%E4%BB%A4%E7%94%A8%E6%9D%A5%E8%AE%BE%E7%BD%AE%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E7%9B%B8%E5%85%B3%E5%8A%9F%E8%83%BD%E3%80%82%20ftp%E6%9C%8D%E5%8A%A1%E5%99%A8,%E5%9C%A8%E7%BD%91%E4%B8%8A%E8%BE%83%E4%B8%BA%E5%B8%B8%E8%A7%81%EF%BC%8CLinux%20ftp%E5%91%BD%E4%BB%A4%E7%9A%84%E5%8A%9F%E8%83%BD%E6%98%AF%E7%94%A8%E5%91%BD%E4%BB%A4%E7%9A%84%E6%96%B9%E5%BC%8F%E6%9D%A5%E6%8E%A7%E5%88%B6%E5%9C%A8%E6%9C%AC%E5%9C%B0%E6%9C%BA%E5%92%8C%E8%BF%9C%E7%A8%8B%E6%9C%BA%E4%B9%8B%E9%97%B4%E4%BC%A0%E9%80%81%E6%96%87%E4%BB%B6%EF%BC%8C%E8%BF%99%E9%87%8C%E8%AF%A6%E7%BB%86%E4%BB%8B%E7%BB%8DLinux%20ftp%E5%91%BD%E4%BB%A4%E7%9A%84%E4%B8%80%E4%BA%9B%E7%BB%8F%E5%B8%B8%E4%BD%BF%E7%94%A8%E7%9A%84%E5%91%BD%E4%BB%A4%EF%BC%8C%E7%9B%B8%E4%BF%A1%E6%8E%8C%E6%8F%A1%E4%BA%86%E8%BF%99%E4%BA%9B%E4%BD%BF%E7%94%A8Linux%E8%BF%9B%E8%A1%8Cftp%E6%93%8D%E4%BD%9C%E5%B0%86%E4%BC%9A%E9%9D%9E%E5%B8%B8%E5%AE%B9%E6%98%93%E3%80%82
小tips: 以下为参考内容
问题
在 Ubuntu 使用命令行 ftp 时,使用 ls 命令会出现卡在 150 Opening data channel for directory listing of "/"
的情况。如下
$ ftp 192.168.0.100
Connected to 192.168.0.100.
220-FileZilla Server 0.9.58 beta
230 Logged on
Remote system type is UNIX.
ftp> pwd
257 "/" is current directory.
ftp> ls
200 Port command successful
150 Opening data channel for directory listing of "/"
解决方法
命令行的默认连接方式是 active 模式。
解决办法是 开启 passive 模式,有两种方式:
启动时,添加 -p 指令
ftp -p 172.100.20.7
启动后,输入 passive 指令
$ ftp 172.100.20.7
ftp > passive
Passive mode on.
原理解释
主动模式:
- 客户端通过任意端口连接到 ftp 服务器,发送PORT指令,并指定端口 port 2。
- 服务器
主动
连接到客户端 port2,建立数据传输通道,进行数据传递。
被动模式
- 客户端通过任意端口连接到 ftp 服务器,并发送PASV指令。服务器开始监听任意端口 port 并告知客户端。
- 服务端
被动
等待客户端连接到 port 端口,建立数据传输通道,进行数据传递.
- 鉴于以上原理,在有防火墙的情况下,主动模式的第二步会连接失败。因此需要切换到被动模式。
参考:Active vs. Passive FTP Simplified: Understanding FTP Ports | JSCAPE
参考: https://blog.csdn.net/m0_47696151/article/details/119594676?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165588405116781683937736%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=165588405116781683937736&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v32_ecpm-1-119594676-null-null.142^v20^rank_v32,157^v15^new_3&utm_term=ftp%3E+dir+200+Port+command+successful.+150+Opening+data+connection+for+directory+list.&spm=1018.2226.3001.4187
以上windows ftp服务搭建完成 、
成功!