启动命令:systemctl start vsftpd.service
关闭命令:systemctl stop vsftpd.service
状态命令:systemctl status vsftpd.service
重启命令:systemctl restart vsftpd.service
场景:51服务,91服务 (ftp)通过51服务链接91服务并且上传文件
注意防火墙是否关闭
注:状态码
230 - 登录成功
200 - 执行命令成功
150 - 开启数据连接端口
250 - 目录切换成功
226 - 关闭数据连接端口
ftp 登陆命令
[root@localhost attachments]# ftp 10.10.10.101
Connected to 10.10.10.101 (10.10.10.101).
220 (vsFTPd 3.0.2)
Name (10.10.10.101:root): aamsftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
查看当前路径 pwd
ftp> pwd
257 "/"
列出当前目录文件 ls
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxrwxrwx 3 1001 0 17 Aug 19 2021 Bill
drwxrwxrwx 3 1001 0 25 Aug 19 2021 Invoice
drwxrwxrwx 3 1001 0 25 Aug 19 2021 Proof
drwxrwxrwx 3 1001 0 25 Aug 23 2021 ProofBook
drwxrwxrwx 2 1001 0 44 Nov 09 2021 recordexport
drwxrwxrwx 2 1001 0 21 Feb 24 2022 temp
drwxrwxrwx 2 0 0 6 Aug 30 09:13 test
查看本机文件 !ls
ftp> !ls
7C2A48AA200000019A792798EB553D64.pdf dir
上传命令 put
ftp> put 7C2A48AA200000019A792798EB553D64.pdf
local: 7C2A48AA200000019A792798EB553D64.pdf remote: 7C2A48AA200000019A792798EB553D64.pdf
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
21338 bytes sent in 5e-05 secs (426760.00 Kbytes/sec)
断开连接
quit / bye /exit
在上传时候遇到如下问题
- ftp: connect: 没有到主机的路由.
- 553 Could not create file.
FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。
PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,
建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,
你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。
PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,
建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,
你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。
ftp: connect: 没有到主机的路由
ftp> passive
Passive mode off.
ftp> put /home/test/xxxx.txt
553 Could not create file.
经过很多次的尝试,可能是因为我的问题的特殊性,我在用put上传文件时,用的命令是"put /home/test/xxxx.txt",上传文件使用的是文件所在的绝对路径,后来发现就是绝对路径的问题。
解决方案:先使用命令"!ls"查看登录远程ftp服务器时的本地服务器目录,再将要上传的文件移动到该本地服务器目录,然后使用"put+文件名"直接上传文件即可,因为此时默认的上传文件目录是登录远程ftp时的本地目录。