FTP服务 安装vsftp服务器,并启动vsftp服务;开启允许匿名上传文件,匿名用户的FTP根目录设为/ftp;上传本地文件/root/12-26/ftp842到ftp里面的test目录【提示:Linux中的/ftp/test目录需要自行创建,关闭SELinux,ftp上传请使用ftp命令,最后请安装好lftp,否则测试不通过】
时间: 2025-07-04 21:14:02 浏览: 7
### **安装并配置 vsftpd 服务器**
#### **1. 安装 vsftpd**
```bash
yum install -y vsftpd # CentOS/RHEL
# 或
apt install -y vsftpd # Debian/Ubuntu
```
#### **2. 启动 vsftpd 服务**
```bash
systemctl start vsftpd
systemctl enable vsftpd
```
#### **3. 关闭 SELinux(否则匿名上传可能失败)**
```bash
setenforce 0 # 临时关闭
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config # 永久关闭
```
#### **4. 配置 vsftpd 允许匿名上传**
编辑 `/etc/vsftpd/vsftpd.conf`:
```bash
vim /etc/vsftpd/vsftpd.conf
```
修改或添加以下配置:
```ini
anonymous_enable=YES # 允许匿名登录
anon_upload_enable=YES # 允许匿名上传
anon_mkdir_write_enable=YES # 允许匿名创建目录
anon_root=/ftp # 设置匿名用户的根目录
no_anon_password=YES # 匿名登录不询问密码(可选)
```
#### **5. 创建 FTP 根目录并设置权限**
```bash
mkdir -p /ftp/test
chmod -R 777 /ftp # 确保匿名用户有写入权限
chown -R ftp:ftp /ftp # 确保 vsftpd 有权限访问
```
#### **6. 重启 vsftpd 服务**
```bash
systemctl restart vsftpd
```
---
### **测试 FTP 匿名上传**
#### **1. 使用 `ftp` 命令上传文件**
```bash
ftp -n 127.0.0.1 <<EOF
user anonymous
cd test
put /root/12-26/ftp842
bye
EOF
```
**说明**:
- `-n` 表示不自动登录。
- `user anonymous` 以匿名用户登录。
- `put /root/12-26/ftp842` 上传文件到 `test` 目录。
#### **2. 使用 `lftp` 测试(题目要求安装)**
```bash
yum install -y lftp # CentOS/RHEL
# 或
apt install -y lftp # Debian/Ubuntu
```
测试上传:
```bash
lftp -u anonymous, 127.0.0.1 <<EOF
cd test
put /root/12-26/ftp842
bye
EOF
```
---
### **验证上传结果**
检查 `/ftp/test` 目录是否包含 `ftp842` 文件:
```bash
ls -l /ftp/test/
```
---
### **常见问题排查**
1. **匿名上传失败**:
- 确保 `anon_upload_enable=YES` 和 `anon_root=/ftp` 已配置。
- 确保 `/ftp` 目录权限为 `777` 或 `chown ftp:ftp /ftp`。
- 检查 SELinux 是否关闭(`getenforce` 应返回 `Disabled`)。
2. **FTP 连接失败**:
- 确保 `vsftpd` 服务已启动(`systemctl status vsftpd`)。
- 检查防火墙是否放行 FTP(默认端口 21):
```bash
firewall-cmd --add-service=ftp --permanent
firewall-cmd --reload
```
---
### **总结**
1. 安装 `vsftpd` 并启动服务。
2. 修改 `/etc/vsftpd/vsftpd.conf` 允许匿名上传。
3. 创建 `/ftp/test` 目录并设置权限。
4. 使用 `ftp` 或 `lftp` 命令测试上传。
5. 关闭 SELinux 并检查防火墙(如需要)。
阅读全文
相关推荐


















