FTP服务器的搭建(ubuntu/Debian)

在 Debian 系统下部署 FTP 服务器可以通过安装和配置 vsftpd(Very Secure FTP Daemon)来实现。以下是详细的步骤说明:


1. 安装 vsftpd

打开终端,使用以下命令安装 vsftpd

sudo apt update
sudo apt install vsftpd

安装完成后,vsftpd 服务会自动启动。可以使用以下命令检查其状态:

sudo systemctl status vsftpd

如果服务未启动,可以手动启动:

sudo systemctl start vsftpd
sudo systemctl enable vsftpd  # 设置开机自启

2. 配置 vsftpd

默认配置文件位于 /etc/vsftpd.conf。在修改前建议备份:

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

编辑配置文件:

sudo nano /etc/vsftpd.conf
基本配置示例(根据需求调整):
# 允许本地用户登录
local_enable=YES
# 允许上传文件
write_enable=YES
# 禁止匿名登录(安全考虑)
anonymous_enable=NO
# 限制用户只能访问其家目录(增强安全性)
chroot_local_user=YES
# 允许被动模式(适合客户端在防火墙后)
pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000
# 使用本地时间而非UTC
use_localtime=YES

可选配置:
  • 允许匿名登录(不推荐生产环境):
anonymous_enable=YES
anon_root=/srv/ftp  # 匿名用户根目录
  • 限制用户列表
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist  # 允许/禁止的用户列表文件
userlist_deny=NO    # NO表示仅允许列表中的用户

保存后退出编辑器(Ctrl+OEnterCtrl+X),然后重启服务:

sudo systemctl restart vsftpd

3. 防火墙设置

如果系统启用了防火墙(如 ufw),需放行 FTP 端口:

sudo ufw allow 20/tcp   # FTP 数据端口(主动模式)
sudo ufw allow 21/tcp   # FTP 控制端口
sudo ufw allow 40000:50000/tcp  # 被动模式端口范围

4. 创建 FTP 用户

使用现有系统用户:

确保用户有写权限(例如用户 xiaoluo_ftp):

# 创建用户
sudo useradd -m xiaoluo_ftp

# 创建目录(如果尚未创建)
sudo mkdir -p /home/xiaoluo_ftp/ftp

# 更改目录所有者
sudo chown xiaoluo_ftp:xiaoluo_ftp /home/xiaoluo_ftp/ftp

# 验证更改
ls -ld /home/xiaoluo_ftp/ftp

新建专用用户(推荐):(这是客户端需要登录的用户名和密码在这设置)
sudo adduser xiaoluo
# 设置密码后,按提示完成创建
sudo mkdir -p /home/xiaoluo/ftp_upload
sudo chown xiaoluo:xiaoluo /home/xiaoluo/ftp_upload


(2)设置权限
  • 家目录不可写(满足 chroot 安全要求):
sudo chmod a-w /home/xiaoluo

子目录可写(用于文件上传):

sudo chmod 777 /home/xiaoluo/ftp_upload  # 或 755(按需调整)

修改 vsftpd 配置

编辑配置文件:

sudo nano /etc/vsftpd.conf
local_enable=YES             # 允许本地用户登录
write_enable=YES             # 允许上传文件
chroot_local_user=YES        # 限制用户在家目录
allow_writeable_chroot=YES   # 允许 chroot 目录可写(需配合权限控制)
pasv_enable=YES              # 启用被动模式(适合客户端在防火墙/NAT后)
pasv_min_port=40000          # 被动模式端口范围
pasv_max_port=50000
userlist_enable=YES          # 启用用户列表控制
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO             # 仅允许列表中的用户登录

保存后重启服务:

sudo systemctl restart vsftpd

许用户登录

将用户 ftpclient 加入白名单:

echo "xiaoluo" | sudo tee -a /etc/vsftpd.userlist

这样客户端就能登录上传了

检测服务器是否正在启动和安装完成

检查服务状态

运行以下命令,确认 vsftpd 服务正在运行:

sudo systemctl status vsftpd
  • 如果显示 active (running),说明服务已启动。
  • 如果未运行,使用 sudo systemctl restart vsftpd 重启服务。
检查监听端口

FTP 默认使用 21(控制端口)20(数据端口,主动模式),运行:

sudo netstat -tulnp | grep vsftpd

预期输出类似:

tcp   0   0 0.0.0.0:21    0.0.0.0:*    LISTEN   1234/vsftpd

5. 测试 FTP 连接

命令行测试(本地):
ftp localhost

输入用户名和密码,尝试上传/下载文件。

图形化工具:

使用 FileZilla、WinSCP 等工具,填写:

  • 主机:服务器IP
  • 用户名/密码:刚创建的用户凭据
  • 端口:21

6. 常见问题解决

  • 连接超时:检查防火墙/安全组规则是否放行 FTP 端口。
  • 530 Login incorrect:确保用户密码正确,且未被 userlist 限制。
  • 550 Permission denied:检查用户对目标目录的读写权限(chmodchown)。
  • 被动模式失败:确认 pasv_min_portpasv_max_port 在防火墙中开放。

7. 安全建议

  1. 禁用匿名登录:除非必要,否则始终设置 anonymous_enable=NO
  2. 启用 TLS 加密(可选):
ssl_enable=YES
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
  1. 日志监控:查看日志 /var/log/vsftpd.log 跟踪连接情况。

完成以上步骤后,你的 Debian 系统就已成功部署了一个功能完整的 FTP 服务器!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值