CentOS 7搭建自己的公网FTP服务器完整教程,一看就懂!
操作环境
Vsftpd(非常安全的文件传输协议守护进程)是多种Linux系统常用的FTP服务程序。以下操作系统基于衡天云服务器,使用CentOS 7.6 64位系统,逐步指导安装并配置vsftpd来建立FTP站点。
环境与版本说明
本次搭建FTP所涉主要软件版本如下:
- Linux发行版:CentOS 7.6系统,博主薅的1核1G香港服务器,不用备案,12块一个月
- Vsftpd版本信息:CentOS 7.6:Vsftpd 3.0.2
CentOS 7.6 配置步骤
1. 连接至云服务器
可通过SSH工具、云控制台VNC或其它远程连接方式登录到Linux主机。
2. 安装Vsftpd服务
在终端中执行以下指令,安装vsftpd:
yum install -y vsftpd设置vsftpd随系统自动启动:
systemctl enable vsftpd启动FTP服务:
systemctl start vsftpd检查服务是否正常运行:
netstat -antup | grep ftp当出现ftp相关监听端口信息时,表示服务已启动。
⚠️ 注意:此时为匿名访问模式,允许无需账号登录,但该方式无法上传或修改文件。
3. 调整Vsftpd配置
创建用于FTP登录的系统用户(示例用户名为ftpuser):
useradd ftpuser为用户设置密码:
passwd ftpuser(输入密码时界面无回显,输入完毕后按回车确认)
提示:为提高安全性,密码建议包含12位以上字符,混合大小写字母、数字及特殊符号。
建立FTP专用目录并调整权限:
mkdir /var/ftp/test
chown -R ftpuser:ftpuser /var/ftp/test编辑vsftpd主配置文件:
vim /etc/vsftpd/vsftpd.conf按下 i 进入编辑模式,根据实际需要调整以下配置项(此处以被动模式为例):
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
#listen_ipv6=YES
local_root=/var/ftp/test
allow_writeable_chroot=YES
pasv_enable=YES
pasv_address=<您的服务器公网IP>
pasv_min_port=40000
pasv_max_port=45000完成后按 Esc,输入 :wq 保存并退出。
若需设定例外用户(不限制于主目录),可创建chroot_list文件:
vim /etc/vsftpd/chroot_list按行添加用户名,保存退出;如无需例外用户,可跳过此步骤。
重新启动vsftpd以使配置生效:
systemctl restart vsftpd4. 配置安全组规则
根据所选FTP模式,在云服务器安全组中开放相应端口:
- 主动模式:开放21端口
- 被动模式:开放21端口及配置文件中设定的被动端口范围(示例为40000-45000)
5. 测试FTP连接
可使用FileZilla、浏览器或命令行等工具进行测试。以下以FileZilla客户端为例:
- 在本地电脑下载安装FileZilla。
- 打开软件,进入站点管理器(文件 → 站点管理器)。
- 新建站点,输入以下信息:协议:FTP主机:服务器公网IP端口:21登录类型:正常用户:ftpuser密码:所设密码
- 在“传输设置”中选择被动模式。
- 点击“连接”,成功后可进行文件传输操作。
常见问题处理
1. 文件上传失败(提示“553 Could not create file”)
- 检查磁盘空间:df -h
- 确认FTP目录是否有写入权限:ls -l /目标目录
- 若无写权限,执行:chmod +w /目标目录
2. 连接后执行命令报错(如“500 Illegal PORT command”)
- 退出当前连接,改用被动模式登录:ftp -p ftpuser@服务器IP
- 或在ftp命令提示符下输入 passive 切换为被动模式。
3. 目录列表失败(提示“550 Permission denied”)
通常因被动模式未正确开启导致。请编辑 /etc/vsftpd/vsftpd.conf,确保包含:
pasv_enable=YES保存后重启服务:systemctl restart vsftpd
附:主动模式配置要点
若需启用主动模式,请在配置文件中注意以下关键项,其余配置可保持与被动模式一致:
anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
#listen_ipv6=YES
allow_writeable_chroot=YES
local_root=/var/ftp/test
pasv_enable=NO配置完成后重启vsftpd服务即可生效。
END
云服务器活动(最新)
扫码添加站长好友
文章投稿、咨询等
技术交流、问题反馈等