1.检查并挂载空闲磁盘
确认空闲磁盘设备(如/dev/sdb):
sudo fdisk -l
若磁盘未分区,先分区并格式化(假设使用ext4文件系统):
sudo fdisk /dev/sdb # 创建新分区 sudo mkfs.xfs /dev/sdb1
创建挂载点并挂载磁盘
(例如挂载到/mnt/ftpdata):sudo mkdir -p /mnt/ftpdata sudo mount /dev/sdb1 /mnt/ftpdata
设置开机自动挂载,编辑
/etc/fstab:echo '/dev/sdb1 /mnt/ftpdata ext4 defaults 0 0' | sudo tee -a /etc/fstab
2.安装和配置VSFTP
安装VSFTP服务:
sudo apt install vsftpd # Debian/Ubuntu sudo yum install vsftpd # CentOS/RHEL
海康自带VSFTP服务
备份并编辑配置文件/etc/vsftpd.conf:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak sudo nano /etc/vsftpd.conf
修改以下关键参数:
anonymous_enable=NO # 禁用匿名登录 local_enable=YES # 允许本地用户登录 write_enable=YES # 允许写入操作 local_root=/mnt/ftpdata # 设置FTP根目录为挂载点 chroot_local_user=YES # 限制用户在其主目录 allow_writeable_chroot=YES # 允许chroot目录可写
启动并启用VSFTP服务:
sudo systemctl start vsftpd sudo systemctl enable vsftpd
3.配置用户和权限
创建专用于FTP的本地用户(如ftpuser):
sudo useradd -d /mnt/ftpdata -s /bin/bash ftpuser sudo passwd ftpuser # 设置密码
调整目录权限:
sudo chown -R ftpuser:ftpuser /mnt/ftpdata sudo chmod 755 /mnt/ftpdata
4.防火墙和SELinux设置
开放FTP端口(20、21):
# 开放 FTP 端口(21)和数据端口范围 sudo firewall-cmd --permanent --add-service=ftp sudo firewall-cmd --permanent --add-port=30000-31000/tcp # 被动模式端口范围 # 重新加载防火墙 sudo firewall-cmd --reload # 查看已开放的端口 sudo firewall-cmd --list-all
对于SELinux(CentOS/RHEL):
sudo setsebool -P ftp_home_dir on
5.测试FTP服务
使用FTP客户端(如FileZilla)或命令行测试连接:
ftp localhost # 输入用户名和密码
注意事项
若需外部访问,确保路由器转发FTP端口。
使用被动模式(pasv)时,需在配置中指定端口范围并开放对应防火墙规则。
定期检查磁盘空间使用情况,避免存储溢出。