真心不想折腾
vsftpd
了,就想简单粗暴快速有效的跑个ftp服务器,找到了pure-ftpd
这货,还挺好用~安利一下
安装
系统用的是Ubuntu 19.10,理论上全系列都通用,官方软件仓库中自带的就有,apt一下就行
$ sudo apt install pure-ftpd
创建虚拟用户
# 使用普通系统账户lpwm登录状态下操作
$ mkdir /home/lpwm/ftp
$ sudo pure-pw useradd lua -u lpwm -d /home/lpwm/ftp/
$ sudo pure-pw mkdb
上面命令创建了lua
虚拟账户,同时关联了系统普通用户lpwm
对文件操作的权限(更安全的做法是专门新建个用户和用户组给ftp虚拟用户关联使用,这里图省事了直接关联的系统普通用户),然后用mkdb
生成虚拟用户的数据库文件
需要注意的是执行pure-pw
命令要用sudo
权限,否则会由于权限不够提示下面的错误:
Error.
Check that [lua] doesn’t already exist,
and that [/etc/pure-ftpd/pureftpd.passwd.tmp] can be written.
重启服务
$ sudo systemctl restart pure-ftpd
填坑
客户端连接报错:
530 Login authentication failed
Login failed.
检查/etc/pure-ftpd/auth/
里面缺少引用本地虚拟用户数据库的60puredb
软连接,手动加上
$ sudo ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/60puredb
# 重启下服务
$ sudo systemctl restart pure-ftpd
至此,再从客户端登录就OJBK了
继续填坑
连接是没问题了,但是客户端从连接上到出现提示用户名能有10来秒的延迟,感觉应该是DNS解析的问题,翻了翻资料,果不其然~都是内网里面用的,要啥解析,要啥自行车!处理一下:
$ sudo vim /etc/pure-ftpd/conf/DontResolve
编辑内容为yes
,保存退出后再重启一下服务就行了.客户端秒连~
备注一下,pure-ftpd的conf文件夹中每个文件名其实对应的就是
/etc/pure-ftpd/pure-ftpd.conf
文件中的配置项,有就进行配置覆盖.