自学Linux02 - FTP
2020-01-09 本文已影响0人
等这姑娘老在我心里
1. 安装
sudo apt-get install vsftpd
2. 检查端口是否打开 默认端口为21
netstat -tnl 或 ps -ef | grep ftp
3. 检查ftp 服务是否开启
service vsftpd status 或 systemctl status vsftpd
4. 启动、停止、重启、查看状态
service vsftpd start | stop | restart | statsu
systemctl start | stop | restart | status vsftpd
/etc/init.d/vsftpd start | restart | status
reload 为重新加载配置文件
5. 修改FTP配置文件,默认是不能写入的
sudo vi /etc/vsftpd.conf
6. FTP 主要配置说明
# 设置登录FTP 欢迎信息 没有啥卵用
ftpd_banner=Welcome to CHL FTP service
# 有用的配置来了
listen=YES # 服务器监听
local_enable=YES # 是否允许本地用户访问
write_enable=YES # 是否运行上传文件,不然就有550 permission error
anonymous_enable=NO # 匿名允许放问,基本上都不开启的
aon_mkdir_write_enable=YES # 匿名允许创建文件夹 和上面一样
# part2
local_umask=022 # FTP 上本地的文件权限 本来是0777 现在umask是022, 目录权限=777-022 = 755,文件=666-022=644
dirmessage_enable=YES # 进入文件夹权限
connect_from_port_20=YES # 使用20端口
data_connection_timeout=120 # 超时时间
# 日志配置
utf8_filesystem=YES # 使用UTF-8
use_localtime=YES
xferlog_enable=YES # 激活上传和下载的日志
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES # 使用标准的日志格式 std => standerd
# 自定义ftp根目录的位置
local_root=/share/vsftpd
# 读写权限
allow_writeable_chroot=YES # 解决500 OOPS : vsftpd: refusing to run with writeable root inside chroot() 问题
write_enable=YES # 允许向FTP服务器写入权限
chown_uploads=YES # 允许改变上传文件的所有者
chown_username=whoever # 设置想要改变上传文件的所有人
ascii_upload_enable=YES # 允许服务器以ASCII方式传递数据,可能会引起 “SIZE /big/file”方式的DDOS攻击
ascii_download_enable=YES
deny_email_enable=YES # 黑名单设置开关
banned_email_file=/etc/vsftpd.banned_emails
# 设置FTP限制最大连接数 和 传输速率
max_client=50 # 最大连接数
max_per_ip=5 # 同一IP地址最大连接数
local_max_rate=100000 # 本地用户最大传输速率 100KB/S
anon_max_rate=50000 # 匿名用户最大传输速率 50KB/S
# 权限设置
userlist_deny=NO # 是否启动userlist 禁止模式
userlist_enable=NO # 是否启动限制用户名单 上面一条禁止所有用户 这里可以做白名单 配合上面的
userlist_file=/etc/vsftpd.user_list
# 在默认配置下,本地用户可以使用cd命令来切换目录,可能会有安全风险隐患,可以进行如下配置
chroot_list_enable=YES # 是否启用chroot_list_file 配置的指定用户列表 默认为NO
chroot_local_user=YES # 用于指定用户列表文件中的用户 允许切换到上级目录 默认为NO
chroot_list_file=/etc/vsftpd.chroot_list # 禁用名单,改文件用于控制控制那些用户可以切换到home目录的上级
7. 登录FTP
- 浏览器方式登录
ftp://ip地址
ftp://用户名:密码@ip/具体路径 # ftp://username:password@127.0.0.1/dirname
- 终端访问
ftp
ftp> open serverip
ftp ip
8. 修改默认端口
默认是21 ,修改到别人想不到的端口,修改上面的配置文件
listen_port=2333
注意: 修改了端口后,需要重新启动ftp
service vsftpd restart
9. ftp> 命令行模式下操作命令
命令描述 | 服务器操作 | 本地目录操作 |
---|---|---|
切换目录 | cd | lcd |
切换到根目录 | cd |cd .. | lcd.. |
显示当前路径 | pwd | !pwd |
显示当前目录文件 | ls | !ls |
10. 上传文件
# server-filename 必须指明 要不然报错 文件名无效
ftp> put /localpath/filename /remotepath/server-filename
# 在ftp模式下 输入bin 切换到 二进制模式, asc切换到字符模式
ftp> bin
200 Switching to Binary mode.
ftp> ascii
200 Switching to ASCII mode.
ftp>
# 批量上传 或者 上传文件夹所有内容,但是不支持文件夹上传
ftp> cd /remote path
ftp> lcd /local path
ftp> mput file*
11. 下载文件
# 同样 不支持下载文件夹操作
ftp> get remote-filename local-filename
12. 删除文件
ftp> delete /remote path /filename