一、安装ftp客户端
Unbutun系统登录后直接执行指令
apt-get install ftp
,即可安装ftp客户端。
安装完成后,执行ftp
命令,验证安装是否成功。
image
二、安装ftp服务器
Unbutun系统登录后直接执行指令
apt-get install vsftpd
,即可安装ftp服务器。
image
三、配置ftp服务器参数
1、配置用户和主目录
首先vsftpd安装完成后,自动添加了ftp的用户。通过
/etc/passwd
可查看确认。
添加ftp用户的主目录(usermod -d /home/ftp ftp
)和密码(passwd ftp
)
然后重启服务(service vsftpd restart
)
注意:配置完成主目录后,需要给目录授权(如
chmod 777 /home/ftp
)
如果需要新建用户,使用指令useradd -s /sbin/nologin <用户名>
添加用户,后续操作如上。
2、修改配置文件(/etc/vsftpd.conf
),增加上传和创建目录权限
- 修改
write_enable=YES
- 修改
local_enable=YES
- 注释
/etc/pam.d/vsftpd
文件下的auth required pam_shells.so
行,解决登陆时报密码错误的问题(530 Login incorrect) - 重启服务(
service vsftpd restart
)
四、登陆上传下载验证
验证采用从主机A(10.134.255.55)作为客户端到主机B(10.134.26.55)作为服务器的访问方式。
1、登录验证
在主机A上执行指令
ftp 10.134.26.55
,然后根据提示输入用户名(ftp
)和密码(123456
),等待结果如下:
image
2、上传验证
在主机A上执行指令
put xxx.txt
,即可将xxx.txt文件上传到主机B上。
如果需要上传多个文件则利用文件名通配符使用指令mput *.txt
上传多个文件。
image
3、下载验证
在主机A上执行指令
get xxx.txt
,即可将xxx.txt文件下载到本地目录中。
如果需要下载多个文件则利用文件名通配符使用指令mget *.txt
下载多个文件
image
4、断开连接
当传输完成后,执行指令
bye
或quit
即可断开连接,退出ftp命令行。
image
5、查看相关的指令帮助
ftp登陆成功,执行指令
help
,即可查看所有的指令列表,同时执行指令help cmd
可查看响应命令的作用。
image
五、ftp命令行指令列表
指令 | 含义 | 使用示例 | 备注 |
---|---|---|---|
ftp | 请求建立ftp连接 | ftp 10.134.26.55 21 |
1、默认端口(21)可省略port。2、不指定IP则进入ftp命令行。 image
|
open/close | 打开或关闭ftp连接 |
open 10.134.26.55 21 、close
|
1、默认端口(21)可省略port。2、用于打开某个连接后连接不成功时需要关闭当前的链接 image
|
bin/asc | 切换文本传输模式,bin二进制,asc:文本 |
bin 、 asc
|
默认为ASCII模式 image
|
recv/get/mget [remote-file] [local-file] | 下载单个或多个文件 |
get xxx.txt 、mget *.txt
|
image
|
send/put/mput [local-file] [remote-file] | 上传单个或多个文件 |
put xxx.txt 、mput *.txt
|
image
|
delete/mdelete [remote-file] | 删除远端单个或多个文件 |
delete f1.txt 、mdelete *.txt
|
image
|
cd/mkdir/rmdir | 切换或创建或删除目录 |
cd tmp 、mkdir tmp 、rmdir tmp
|
image
|
ls/dir [remote-dir] [local-file] | 列出远端目录的文件 |
ls . dir.txt 、dir . dir.txt
|
如果存在本地文件参数,则将结果写入本地文件。 image
|
chmod | 修改远端文件或目录权限 | chmod tmp |
参见cd命令效果图 |
rename [from] [to] | 更改远端文件的名称 | rename f1.txt f2.txt |
image
|
pwd | 显示远端的当前目录 | pwd |
参见cd命令效果图 |
system/status | 显示远端系统信息或当前状态 |
system 、status
|
image
|
bye/quit | 断开连接,退出ftp命令行 | bye |
ftp> bye 221 Goodbye. |
help/? | 显示帮助文档 |
help 、?
|
六、ftp相关配置参数列表
配置参数文件位于
/etc/vsftpd.conf
.
配置项 | 可选值 | 含义 | 备注 |
---|---|---|---|
anonymous_enable | yes/no | 是否允许匿名登录 | |
local_enable | yes/no | 本地帐户能够登录 | |
write_enable | yes/no | 本地帐户登陆后是否有权修改或删除文件 | |
dirmessage_enable | yes/no | 切换目录时,是否显示目录下.message的内容 | |
local_umask | 022 | FTP上传本地的文件权限,默认是077 | |
connect_form_port_20 | yes/no | 启用FTP数据端口的数据连接 | |
xferlog_enable | yes/no | 是否激活上传下载的日志 | |
xferlog_std_format | yes/no | 是否hi用标准的日志格式 | |
ftpd_banner | xxxx | 欢迎信息 | |
banner_file | /路径/文件名 | 用户连接后的欢迎信息存储文件路径 | |
banner_fail | /路径/文件名 | 连接失败时显示的文件内容 | |
listen | yes/no | 是否为独立的VSFTPD服务器 | |
pam_service_name | vsftpd | 验证方式 | |
anon_upload_enable | yes/no | 是否开放上传权限 | |
anno_mkdir_write_enable | yes/no | 是否可创建目录并在次上传文件 | |
write_enable | yes/no | 是否开放本地用户的写权限 | |
ascii_upload_enable | yes/no | 是否启用上传的ASCII传输方式 | |
ascii_download_enable | yes/no | 是否启用下载的ASCII传输方式 | |
idle_session_timeout | 600 | 用户会话空闲超时时间,单位:秒 | |
data_connection_timeout | 120 | 数据连接空闲超时时间,单位:秒 | |
accept_timeout | 60 | 客户端空闲超时时间,单位:秒 | |
local_max_rate | 50000 | 本地用户传输速率,单位:bit | |
anon_max_rate | 30000 | 匿名用户传输速率,单位:bit | |
max_clients | 200 | FTP的最大连接数 | |
max_per_ip | 4 | 每个IP的最大连接数 | |
listen_port | 5555 | 修改数据连接端口 | |
chroot_local_user | yes/no | 本地所有帐户是否只能在自己的目录 | |
chroot_list_enable | yes/no | 文件中的帐户才能使用 | |
chroot_list_file | /路径/vsftpd.chroot_list | 帐户名单 | 前提是chroot_local_user=no |
userlist_enable | yes/no | 指定文件中的用户是否启用 | |
userlist_deny | yes/no | 指定的userlist是否为黑名单 | |
userlist_file | /路径/vsftpd.user_list | 帐户名单 |