ftp服务器搭建

在ubuntu服务器上搭建ftp服务,用于个人使用

安装

安装VSFTPD
使用 apt-get 安装 vsftpd:
sudo apt-get install vsftpd -y
启动 VSFTPD
安装完成后 VSFTPD 会自动启动,通过 netstat 命令可以看到系统已经[监听了 21 端口]:
sudo netstat -nltp | grep 21
如果没有启动,可以手动开启 VSFTPD 服务:
sudo systemctl start vsftpd.service
FTP 协议默认使用 21 端口作为服务端口
配置用户访问目录
新建用户主目录
sudo mkdir /home/ftp
新建用户uftp并设置密码
创建一个用户 uftp :
sudo useradd -d /home/uftp -s /bin/bash uftp
为用户 uftp 设置密码:
sudo passwd uftp
删除掉 pam.d 中 vsftpd,因为该配置文件会导致使用用户名登录 ftp 失败:
sudo rm /etc/pam.d/vsftpd
限制该用户只能通过ftp访问,不可以直接登录服务器
sudo usermod -s /sbin/nologin uftp
修改vsftpd配置
修改 /etc/vsftpd.conf 文件中的配置(直接将如下配置添加到配置文件最下方):
限制用户对主目录以外目录访问
chroot_local_user=YES
指定一个 userlist 存放允许访问 ftp 的用户列表
userlist_deny=NO
userlist_enable=YES
记录允许访问 ftp 用户列表
userlist_file=/etc/vsftpd.user_list
不配置可能导致莫名的530问题
seccomp_sandbox=NO
允许文件上传
write_enable=YES
使用utf8编码
utf8_filesystem=YES
新建文件 /etc/vsftpd.user_list,用于存放允许访问 ftp 的用户:
sudo touch /etc/vsftpd.user_list
sudo chmod a+w /etc/vsftpd.user_list
修改 /etc/vsftpd.user_list ,加入刚刚创建的用户:
uftp
设置访问权限
设置主目录访问权限(只读):
sudo chmod a-w /home/ftp
新建公共目录,并设置权限(读写):
sudo mkdir /home/ftp/public && sudo chmod 777 -R/home/ftp/public
重启vsftpd 服务:
sudo systemctl restart vsftpd.service

绑定域名

1.购买域名
2.设置域名解析,直接将域名绑定到ftp服务器的ip上。

安装问题

1.ftp连接错误500 OOPS: vsftpd
解决

1
2
vim /etc/vsftpd/vsftpd.conf
# 添加一行配置 allow_writeable_chroot=YES

参考

ftp命令

命令行连接ftp
ftp ip
输入用户名,密码
或者 ftp>open ip
下载文件
ftp>get filename
上传文件
ftp>put filename
查看目录
ftp>ls
查看本地目录
ftp>!ls

Contents
  1. 1. 安装
  2. 2. 绑定域名
  3. 3. 安装问题
  4. 4. ftp命令
|