菜鸟科技网

FTP登录命令有哪些?

标准FTP登录(不安全,明文传输)

这种方式是FTP最原始的登录方法,但因为它用户名和密码都是明文传输,现在已不推荐用于生产环境,仅用于学习或内部网络。

FTP登录命令有哪些?-图1
(图片来源网络,侵删)

交互式命令行登录

这是最基本、最常用的方式,可以一步步看到服务器的反馈。

命令格式:

ftp [hostname_or_IP]

操作步骤:

  1. 连接到FTP服务器

    FTP登录命令有哪些?-图2
    (图片来源网络,侵删)
    ftp ftp.example.com
    # 或者使用IP地址
    # ftp 192.168.1.100

    连接成功后,服务器通常会返回欢迎信息,并提示你输入用户名。

  2. 输入用户名

    Name (ftp.example.com:user): your_username

    输入你在FTP服务器上注册的用户名,然后按回车。

  3. 输入密码

    FTP登录命令有哪些?-图3
    (图片来源网络,侵删)
    Password:

    输入你的密码,输入时,为了安全,屏幕上不会显示任何字符(光标也不会移动),输入完成后直接按回车。

  4. 登录成功 登录成功后,你会看到类似 230 Login successful. 的提示符,并进入 ftp> 命令行模式,此时你就可以使用各种FTP命令来传输文件了。

完整示例:

$ ftp ftp.example.com
Connected to ftp.example.com.
220-FileZilla Server version 0.9.60 beta
220 Please visit https://filezilla-project.org/
Name (ftp.example.com:my_local_user): my_ftp_user
331 Password required for my_ftp_user
Password:
230 Logged on
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

命令行一键登录(非交互式)

如果你在脚本中需要自动登录FTP,可以使用 ftp 命令的 -n 选项(禁止自动登录)和 -i 选项(关闭多文件传输时的交互式提示),并通过输入重定向 (<<EOF 或 ) 来提供用户名和密码。

使用 here document (推荐)

ftp -n -i <<EOF
open ftp.example.com
user your_username your_password
# 在这里可以添加其他FTP命令,
# put local_file.txt remote_file.txt
# get remote_file.txt
bye
EOF

使用管道

echo -e "open ftp.example.com\nuser your_username your_password\nls\nbye" | ftp -n -i

注意:将密码直接写在脚本中是非常危险的做法,容易泄露,在生产环境中,应考虑使用更安全的方式,如SSH密钥对或配置文件。


安全FTP登录(推荐)

为了解决标准FTP不安全的问题,发展出了多种加密FTP协议。

SFTP (SSH File Transfer Protocol)

重要提示:SFTP 不是 FTP 的安全版本!它完全是一个不同的协议,运行在SSH(Secure Shell)之上,使用端口22。

SFTP是现在最常用的安全文件传输方式,因为它加密了整个会话,包括用户名、密码和所有传输的数据。

登录命令: SFTP使用 sftp 命令,其交互式界面和FTP非常相似。

sftp [username@]hostname

操作步骤:

  1. 连接
    sftp my_ftp_user@ftp.example.com
  2. 输入密码 和SSH登录一样,输入你的密码。
  3. 进入SFTP命令行 登录成功后,你会看到 sftp> 提示符。

完整示例:

$ sftp my_ftp_user@ftp.example.com
my_ftp_user@ftp.example.com's password:
Connected to ftp.example.com.
sftp> ls
sftp> get remote_file.txt
Fetching /remote/path/remote_file.txt to local_file.txt
sftp> put local_file.txt
Uploading local_file.txt to /remote/path/local_file.txt
sftp> bye

FTPS (FTP over SSL/TLS)

FTPS是FTP协议的安全扩展,它通过SSL/TLS协议对FTP会话进行加密,它有两种模式:

  • 显式模式 (Explicit FTPS):客户端先发送 AUTH TLS 命令,服务器同意后才切换到加密连接,端口通常是21,这是目前推荐的标准模式。
  • 隐式模式 (Implicit FTPS):客户端一连接,服务器就立即开始加密连接,端口通常是990,这是一种较旧的模式。

登录命令(使用 lftpcurl 等工具)

Linux系统自带的 ftp 命令通常不支持FTPS,但功能更强大的 lftp 工具支持。

使用 lftp 进行显式FTPS登录:

lftp ftps://ftp.example.com
# 然后在lftp交互界面中
lftp ftps://ftp.example.com> user your_username your_password

或者直接在一行中完成:

lftp -u your_username,your_password ftps://ftp.example.com

使用 curl 进行FTPS文件上传/下载:

# 上传文件
curl -T local_file.txt --user your_username:your_password ftps://ftp.example.com/remote_dir/
# 下载文件
curl -O --user your_username:your_password ftps://ftp.example.com/remote_dir/remote_file.txt

常用FTP/SFTP命令一览表(登录后使用)

命令 描述 示例
ls 列出当前目录下的文件和文件夹 ls
cd 切换远程目录 cd /public_html
lcd 切换本地目录(在客户端上) lcd /home/user/my_files
get 从远程服务器下载一个文件 get remote_file.txt
mget 从远程服务器下载多个文件(支持通配符) mget *.jpg
put 上传一个本地文件到远程服务器 put local_file.txt
mput 上传多个本地文件到远程服务器 mput *.log
mkdir 在远程服务器上创建一个新目录 mkdir new_folder
delete 删除远程服务器上的一个文件 delete old_file.txt
rmdir 删除远程服务器上的一个空目录 mdir empty_folder
pwd 显示当前远程工作目录 pwd
执行本地shell命令 !ls (查看本地目录)
help 显示所有可用命令的帮助 help
byequit 退出FTP/SFTP会话 bye

总结与建议

特性 FTP (标准) SFTP FTPS
协议 FTP SSH FTP over SSL/TLS
端口 21 22 21 (显式) / 990 (隐式)
安全性 (明文传输) (加密整个会话) (加密会话)
易用性 命令简单,但功能有限 命令与FTP相似,功能强大 需要特殊客户端支持
推荐度 不推荐 强烈推荐 推荐

最终建议:

  • 强烈推荐使用 SFTP,它是最安全、最现代、功能最全的选择,也是Linux/Unix系统管理员的标配工具。
  • 如果你的服务器只支持传统的FTP,请立即联系管理员要求升级到SFTP或FTPS,以保护你的数据安全。
  • 对于Windows用户,可以使用图形化工具如 FileZilla,它同时支持FTP、SFTP和FTPS,操作直观且安全。
分享:
扫描分享到社交APP
上一篇
下一篇