ubuntu20.04配置ftp服务器

一、首先安装vsftpd

  • vsftpd(very secure FTP daemon)
  • sudo apt-get install vsftpd

二、配置vsftp.conf 文件

配置之前可以先备份一下,cp vsftpd.conf vsftpd.conf.back
  1. cd /etc/
  2. sudo vim vsftpd.conf
  3. 配置文件中各个变量的含义
##########虚拟用户######一般匿名用户设置前两项即可######################################
anonymous_enable=YES    # 启用匿名访问,匿名用户使用的登陆名为ftp或anonymous,口令为空;匿名用户不能离开匿名用户家目录/var/ftp,且只能下载不能上传。
anon_root=/var/ftp  # 使用匿名登入时,所登入的目录。默认值为/var/ftp。注意ftp目录不能是777的权限属性,即匿名用户的家目录不能有777的权限。可以设置为755。
no_anon_password=YES/NO(NO)  # 若是启动这项功能,则使用匿名登入时,不会询问密码。默认值为NO。
ftp_username=ftp  # 定义匿名登入的使用者名称。默认值为ftp。
anon_umask=022          # 匿名用户上传文件的权限掩码
anon_upload_enable=YES  # 允许匿名上传文件
anon_world_readable_only=YES/NO(YES)# 如果设为YES,则允许匿名登入者下载可阅读的档案(可以下载到本机阅读,不能直接在FTP服务器中打开阅读)。默认值为YES。
anon_mkdir_write_enable=YES  # 允许匿名创建目录
anon_other_write_enable=YES  # 开放其他写入权限,譬如删除或者重命名
anon_max_rate=0   # 限制最大上传速率,0表示不限制
#########本地用户##########################################################################
local_enable=YES  # 允许本地用户登录,本地用户的登录名为本地用户名,口令为此本地用户的口令;本地用户可以在自 己家目录中进行读写操作;本地用户可以离开自家目录切换至有权限访问的其他目录,并在权限允许的情况下进行上传/下载。
local_root=/home/username  # 当本地用户登入时,将被更换到定义的目录下。默认值为各用户的家目录。
chroot_local_user=YES/NO(NO)  # 自己指定登录用户目录时,该项设置为NO。具体不知道为什么。
write_enable=YES/NO(YES)# 是否允许登陆用户有写权限。属于全局设置,默认值为YES。
local_umask=022  # 本地用户新增档案时的umask 值。默认值为077。
file_open_mode=0755  # 本地用户上传档案后的档案权限,与chmod 所使用的数值相同。默认值为0666。
#########欢迎语设置####################################################################
dirmessage_enable=YES/NO(YES)# 如果启动这个选项,那么使用者第一次进入一个目录时,会检查该目录下是否有.message这个档案,如果有,则会出现此档案的内容,通常这个档案会放置欢迎话语,或是对该目录的说明。默认值为开启。
message_file=.message  # 设置目录消息文件,可将要显示的信息写入该文件。默认值为.message。
banner_file=/etc/vsftpd/banner  # 当使用者登入时,会显示此设定所在的档案内容,通常为欢迎话语或是说明。默认值为无。如果欢迎信息较多,则使用该配置项。
ftpd_banner=Welcome to BOB's FTP server # 这里用来定义欢迎话语的字符串,banner_file是档案的形式,而ftpd_banner 则是字符串的形式。预设为无。
###########控制用户是否允许切换到上级目录################################################
chroot_list_enable=YES/NO(NO) # 设置是否启用chroot_list_file配置项指定的用户列表文件。默认值为NO。
chroot_list_file=/etc/vsftpd.chroot_list  # 用于指定用户列表文件,该文件用于控制哪些用户可以切换到用户家目录的上级目录。
chroot_local_user=YES/NO(NO)#  用于指定用户列表文件中的用户是否允许切换到上级目录。默认值为NO。
#############控制用户访问#############################################################
userlist_file=/etc/vsftpd.user_list  # 控制用户访问FTP的文件,里面写着用户名称。一个用户名称一行。
userlist_enable=YES/NO(NO)  # 是否启用vsftpd.user_list文件。
userlist_deny=YES/NO(YES)  # 决定vsftpd.user_list文件中的用户是否能够访问FTP服务器。若设置为YES,则vsftpd.user_list文件中的用户不允许访问FTP,若设置为NO,则只有vsftpd.user_list文件中的用户才能访问FTP。
# /etc/vsftpd/ftpusers文件专门用于定义不允许访问FTP服务器的用户列表

listen=YES  #是否以独立运行的方式监听服务
listen_address=192.168.4.1  #设置监听的 IP 地址
listen_port=21  #设置监听 FTP 服务的端口号
write_enable=YES  #是否启用写入权限(影响整个服务器)
download_enable=YES  #是否允许下载文件
userlist_enable=YES  #是否启用 user_list 列表文件
userlist_deny=YES  #是否禁用 user_list 中的用户
max_clients=0 #限制并发客户端连接数,就是最多允许多少用户同时登录
max_per_ip=0  #限制同一IP地址的并发连接数,就是一个IP最多同时下载几个文件

几个配置时的坑,
  • 如果连不上可以试着设置listen_ipv6=NO
  • 配置local_root不管用,可以试着设置chroot_local_user=NO
  • 连接时发生500 OOPS: priv_sock_get_cmd错误:服务器开启了selinux,导致连接被阻断的情况。在vsftpd.conf末尾加上以下两句话。
    seccomp_sandbox=NO
    isolate_network=NO
    

ftp服务启动、重启和停止

  • sudo service vsftpd start/restart/stop
  • systemctl start/restart/stop vsftpd

参考:https://blog.csdn.net/mgsky1/article/details/77825386
https://blog.51cto.com/u_13871362/2318530

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值