Ubuntu16.04搭建FTP服务器

Ubuntu16.04搭建FTP服务器

最近工作需要,要在Ubuntu系统下搭建ftp服务器,安装过程中也遇到了很多的问题,特此记录一下

注:本文为博主原创文章,未经博主允许不得转载。 如需转载请注明出处,否则必定追究法律责任
https://blog.csdn.net/weixin_44232093/article/details/97760997

1. 安装vsftpd

sudo apt-get install vsftpd

1.1 安装后打开ftp配置文件

vim /etc/vsftpd.conf

2. 配置文件

  • 原配置文件内容和解释
#ftp服务器是否处于独立启动模式
listen=NO  
listen_ipv6=YES

 #是否允许匿名访问,NO为不允许
anonymous_enable=NO  			


#是否允许本地用户访问
local_enable=YES			   

#是否允许写操作
write_enable=YES				

#新建文件权限,新建后的文件的权限就是777-022=755 文件所有者可读可写可执行
local_umask=022					

#允许为目录配置显示信息,显示每个目录下面的message_file文件的内容
dirmessage_enable=YES

use_localtime=YES

#开启日志记录
xferlog_enable=YES

#绑定端口号20
connect_from_port_20=YES

#日志记录的路径
xferlog_file=/var/log/vsftpd.log

#设置日志格式为标准输出
xferlog_std_format=YES

#欢迎语句,在使用shell时可以看到
ftpd_banner=Welcome to FTP service.

#是否限制本地所有用户切换根目录的权限,YES为开启限制,即登录后的用户不能访问ftp根目录以外的目录,当然要限制啦
chroot_local_user=YES
#是否启动限制用户的名单list为允许模式,上面的YES限制了所有用户,可以用这个名单作为白名单,作为例外允许访问ftp根目录以外
chroot_list_enable=YES

#设置哪个文件是list文件,里面的用户将不受限制的去访问ftp根目录以外的目录
chroot_list_file=/etc/vsftpd.chroot_list


secure_chroot_dir=/var/run/vsftpd/empty

#原配置中为vsftpd,ubuntu用户需要更改成ftp
pam_service_name=ftp


rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO

#上传的文件不乱码
utf8_filesystem=YES

3. 配置内容

  • ftp配置文件,可以完全替代原配置文件,复制粘贴即可
#这些设置系统默认是开启的,可以不管
listen=NO
listen_ipv6=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES

#下面的就要自定义设置了,建议系统默认的不管,然后复制下面的

#是否允许匿名访问,NO为不允许
anonymous_enable=NO
#是否允许本地用户访问,就是linux本机中存在的用户,YES允许
local_enable=YES
#是否开启写模式,YES为开启
write_enable=YES
#新建文件权限,一般设置为022,那么新建后的文件的权限就是777-022=755
local_umask=022

#是否启动userlist为通过模式,YES的话只有存在于userlist文件中的用户才能登录ftp(可以理解为userlist是一个白名单),NO的话,白名单失效,和下面一个参数配合使用
userlist_enable=YES
#是否启动userlist为禁止模式,YES表示在userlist中的用户禁止登录ftp(黑名单),NO表示黑名单失效,我们已经让userlist作为一个白名单,所以无需使用黑名单功能
userlist_deny=NO
#指定哪个文件作为userlist文件,我们稍后编辑这个文件
userlist_file=/etc/vsftpd.user_list

#是否限制本地所有用户切换根目录的权限,YES为开启限制,即登录后的用户不能访问ftp根目录以外的目录,当然要限制啦
chroot_local_user=YES
#是否启动限制用户的名单list为允许模式,上面的YES限制了所有用户,可以用这个名单作为白名单,作为例外允许访问ftp根目录以外
chroot_list_enable=YES
#设置哪个文件是list文件,里面的用户将不受限制的去访问ftp根目录以外的目录
chroot_list_file=/etc/vsftpd.chroot_list
#是否开启写模式,开启后可以进行创建文件夹等写入操作
allow_writeable_chroot=YES

#设置ftp根目录的位置,这个文件我们稍后自己创建
local_root=/var/myftp
# ftp服务器被动模式端口范围,如果不关闭防火墙的话只需要开放一个30000端口即可访问ftp了
pasv_enable=YES
pasv_max_port=30000
pasv_min_port=30000

3.1 创建用户+配置ftp

// 1. 保存退出后重启vsftpd
sudo /etc/init.d/vsftpd restart 

// 2. 添加用户 ftpuser是用户名
sudo useradd -d /var/myftp ftpuser

// 3. 设置密码,这里密码属于不可见,输入后回车再次确认即可
// ftpuser是上面设定的用户名
sudo passwd ftpuser

// 4. 添加ftpuser到白名单
vim /etc/vsftpd.user_list

// 5. 不写或者添加ftpuser使用户能访问ftp根目录以外目录
vim /etc/vsftpd.chroot_list

// 6. 创建文件夹,使用下面命令设置权限
mkdir /var/myftp

4. 创建文件夹设置权限

chmod 555 /var/myftp
cd /var/myftp
mkdir upload
chmod 755 upload
mkdir download
chmod 555 download

上述命令可以看自己的具体需求,我这里在根目录下禁止此用户写,然后下面建两个文件夹,一个download只允许读取,upload允许写和读

5. ftp登录出现530错误

  • 在命令行输入ftp XXX.XXX.XXX.XXX 后面为你的ip地址,输入用户名密码
  • 如果登录出现530错误:
// 1. 配置 vsftpd
vim /etc/pam.d/vsftpd

// 2. 注释掉 auth required pam_shells.so
  • ls一下,如果失败passive mode切换为被动模式
  • 可以在浏览器输入同样的ftp XXX.XXX.XXX.XXX查看ftp目录

6. 550 create directory operation failed问题解决

  • 出现这个问题主要是系统中的selinx开启了保护模式,只需要把文件保护关掉就可以了
// 1. 查看 SELinux 的状态
sestatus -b | grep ftp 

// 2. 设置其中之一为on即可
setsebool -P ftpd_disable_trans on  
setsebool -P  ftp_home_dir  on 

// 3. 重启ftp
/etc/init.d/vsftpd restart

7. ftp服务器上传/下载文件

7.1 上传文件

  • 在ubuntu系统中登录你的ftp服务器用户
  • 登录成功后在命令行输入上传命令put
  • (local-file) /var/myftp/1.jpg出现(local-file前缀)意思为:本地上传文件的路径,回车确认
  • (remote-file) upload/2.jpg出现(remote-file前缀)意思为:上传到ftp服务器的目录路径,回车确认
  • 上传成功后可以通过目录查看,也可以通过浏览器输入ftp XXX.XXX.XXX.XXX查看
  • 注意:上传的原文件要写到文件后缀,不然上传不上去,也就是必须确认文件格式

7.2 下载文件

  • 下载就比较简单了,登录成功后在命令行输入get命令
  • (remote-file) upload/2.jpg,输入下载文件的目录路径,回车确认
  • (local-file) /var/myftp/3.jpg输入下载后文件保存的位置,回车确认
  • 上传成功后可以通过目录查看,也可以通过浏览器输入ftp XXX.XXX.XXX.XXX查看
  • 注意:上传的原文件要写到文件后缀,不然上传不上去,也就是必须确认文件格式

借鉴链接为:https://www.cnblogs.com/dupengcheng/p/6790143.html
借鉴链接为:https://blog.csdn.net/qq_33279781/article/details/73607466

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叫我三胖哥哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值