在 CentOS 7 系统上基于本地用户搭建 FTP 服务,可按以下步骤操作:
1. 安装 vsftpd 服务
vsftpd 是一款常用的 FTP 服务器软件,可借助 yum 来安装:
bash
yum install -y vsftpd
2. 启动并设置开机自启 vsftpd 服务
bash
systemctl start vsftpd
systemctl enable vsftpd
3. 配置防火墙以允许 FTP 服务
要保证 FTP 服务的正常运行,需开放相应的端口。
bash
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
4. 创建本地用户并设置密码
你可以创建一个新的本地用户,同时为其设置密码。
bash
useradd (用户名) 添加用户
passwd (用户名) 给用户设置密码
5. 配置 vsftpd
编辑 /etc/vsftpd/vsftpd.conf
文件,进行如下修改:
plaintext
# 允许本地用户登录
local_enable=YES
# 允许本地用户上传文件
write_enable=YES
# 设置本地用户的文件掩码
local_umask=022
# 启用 chroot 功能,将用户限制在其主目录
chroot_local_user=YES
# 允许用户上传文件到其主目录
allow_writeable_chroot=YES
上面若有找不到的记得手动添加
6. 重启 vsftpd 服务
修改配置文件后,需重启 vsftpd 服务以使配置生效。
bash
systemctl restart vsftpd
7. 测试 FTP 服务
1. ftp
ftp
是一个经典的命令行 FTP 客户端工具,在大多数 Linux 发行版和 macOS 系统中都默认安装,Windows 系统也可以通过安装额外的软件包来使用。
示例命令:
bash
ftp <FTP服务器IP地址>
当连接成功后,按照提示输入用户名和密码登录,登录成功就意味着 FTP 服务基本正常。
2. lftp
lftp
是一个功能更强大的命令行 FTP 客户端,支持更多的协议和功能,如断点续传等。
安装命令(以 CentOS 为例):
bash
yum install lftp
示例命令:
bash
lftp <FTP服务器IP地址>
登录成功后,你可以使用 ls
、get
、put
等命令进行文件操作测试。
3. curl
curl
是一个常用的命令行工具,不仅支持 FTP 协议,还支持多种其他协议。可以使用它来测试 FTP 服务的文件下载功能。
示例命令:
bash
curl -u <用户名>:<密码> ftp://<FTP服务器IP地址>/<文件路径> -o <本地文件名>
图形化工具
1. FileZilla
FileZilla 是一款跨平台的图形化 FTP 客户端,支持 Windows、Linux 和 macOS 系统。
- 安装:在 Windows 系统中可以从官网下载安装包进行安装;在 Linux 系统中可以通过包管理器进行安装,如在 Ubuntu 中可以使用以下命令:
bash
sudo apt-get install filezilla
- 使用:打开 FileZilla,在 “主机” 栏输入 FTP 服务器的 IP 地址,“用户名” 和 “密码” 栏输入相应的信息,点击 “连接” 按钮进行连接测试。
2. WinSCP(仅适用于 Windows 系统)
WinSCP 是一款专为 Windows 系统设计的图形化 FTP 客户端,支持 SFTP、FTP、FTPS 等多种协议。
- 安装:从官网下载安装包进行安装。
- 使用:打开 WinSCP,在 “会话” 窗口中输入 FTP 服务器的相关信息,点击 “登录” 按钮进行连接测试。
编程语言
你还可以使用 Python、Java 等编程语言编写脚本来测试 FTP 服务。以下是一个使用 Python 的 ftplib
库进行测试的示例代码:
python
import ftplib
try:
ftp = ftplib.FTP('<FTP服务器IP地址>')
ftp.login('<用户名>', '<密码>')
print('登录成功')
ftp.quit()
except ftplib.all_errors as e:
print(f'登录失败: {e}')