ios 开发之没事来看看Linux

自学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

  1. 浏览器方式登录
ftp://ip地址
ftp://用户名:密码@ip/具体路径 # ftp://username:password@127.0.0.1/dirname

  1. 终端访问
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
上一篇 下一篇

猜你喜欢

热点阅读