# vsftpd 配置

配置 vsftpd FTP 服务器。

# 安装deps下 vsftpd 的离线安装包

sudo dpkg -i vsftpd_3.0.5-0ubuntu1.1_amd64.deb

# 有依赖问题，修复依赖

sudo apt-get install -f

## 启动服务

sudo service vsftpd start

# 重启服务

sudo service vsftpd restart

# 查看状态

sudo service vsftpd status

## 备份配置文件

先备份默认配置，出问题能恢复：

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

## 修改配置文件

编辑配置：

```bash
sudo vim /etc/vsftpd.conf
```

### 基本配置参数

```bash
# 允许本地用户登录
local_enable=YES

# 允许写操作（上传/删除/修改）
write_enable=YES

# 限制用户在自己目录中，不能访问整个系统
chroot_local_user=YES

# 防止 chroot 错误（重要！）
allow_writeable_chroot=YES

# 被动模式配置
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=31000
```

## 创建 FTP 目录和用户

### 创建共享目录

```bash
sudo mkdir -p /srv/ftp/share
sudo chmod 755 /srv/ftp/share
```

### 创建专用用户

```bash
sudo adduser ftpuser

# 修改用户主目录
sudo usermod -d /srv/ftp/share ftpuser
```

## 重启服务

```bash
sudo service vsftpd restart
```

## 防火墙配置

### 开放基本端口

```bash
sudo ufw allow 21/tcp
```

### 开放被动模式端口

```bash
sudo ufw allow 30000:31000/tcp
```

## 测试连接

```bash
# 本地测试
ftp localhost

# 远程测试
ftp 你的服务器IP
```

用户名：ftpuser  
密码：设置的密码