资讯详情

资讯详情

零基础玩转CentOS7:FTP文件传输服务搭建全攻略

大家好我是你们的Linux老司机今天带大家解锁一个超实用的技能——在CentOS7上搭建FTP文件传输服务别被FTP这个专业名词吓到其实它就是一个文件快递员 保证让你一学就会一、什么是FTP为什么需要它想象一下FTP就像互联网世界的文件快递员 FTP是什么File Transfer Protocol文件传输协议的缩写专门用来在网络上传输文件的快递服务就像顺丰小哥负责把文件从A地送到B地为什么需要它你想给朋友传个大文件微信有限制QQ传的慢你想让团队成员共享项目文件U盘拷来拷去太麻烦你想备份网站文件到本地手动下载太费劲FTP就是那个24小时待命的文件快递员随叫随到二、环境准备在召唤我们的文件快递员之前准备这些装备# 1. 一台安装了CentOS7的电脑或虚拟机 # 2. 能上网的网络连接:ping www.baidu.com # 3. 知道root密码或者有sudo权限 # 4. 一颗探索的心检查你的系统cat /etc/redhat-release如果看到CentOS Linux release 7.x恭喜你准备出发三、实战开始一步步搭建FTP服务步骤1安装vsftpd我们的快递公司# 首先更新软件库看看有什么新货 sudo yum update # 安装vsftpdVery Secure FTP Daemon sudo yum install vsftpd -y # 安装完成是不是比点外卖还简单步骤2启动FTP服务# 启动vsftpd服务让快递公司开始营业 sudo systemctl start vsftpd # 设置开机自启动这样电脑重启后快递公司自动开门 sudo systemctl enable vsftpd # 检查状态看看我们的快递公司是否正常运营 sudo systemctl status vsftpd如果看到active (running)说明你的FTP服务已经上线啦四、配置FTP服务基础配置认识vsftpd的工作手册# 主要配置文件在这里这就是快递公司的规章制度 /etc/vsftpd/vsftpd.conf # 用户列表文件在这里黑名单/白名单 /etc/vsftpd/user_list /etc/vsftpd/ftpusers配置vsftpd基本参数# 备份原始配置好习惯就像存个底稿 sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.backup # 编辑配置文件 sudo vi /etc/vsftpd/vsftpd.conf基本配置项说明# 允许匿名用户访问就像允许游客参观 anonymous_enableYES # 允许本地用户登录公司员工可以上班 local_enableYES # 允许用户上传文件允许快递员收件 write_enableYES # 本地用户创建文件的默认权限 local_umask022 # 是否让登录用户限制在自己的家目录中像关在房间里工作 chroot_local_userYES allow_writeable_chrootYES # 启用被动模式PASV pasv_enableYES pasv_min_port30000 pasv_max_port31000 # 其他重要配置 dirmessage_enableYES # 显示目录消息 xferlog_enableYES # 启用传输日志 connect_from_port_20YES # 使用20端口传输数据匿名上传配置# 如果你想允许匿名用户上传就像允许陌生人寄快递 anon_upload_enableYES anon_mkdir_write_enableYES # 设置匿名用户的上传目录 anon_root/var/ftp/pub保存退出后重启服务sudo systemctl restart vsftpd创建测试用户和目录# 创建一个专门用于FTP的用户 sudo useradd -m -d /home/ftpuser -s /sbin/nologin ftpuser sudo passwd ftpuser # 输入密码123456学习环境可以用简单密码 # 创建匿名用户的上传目录 sudo mkdir -p /var/ftp/pub/upload sudo chown ftp:ftp /var/ftp/pub/upload sudo chmod 755 /var/ftp/pub/upload五、测试访问配置防火墙# 开放FTP服务所需的端口 sudo firewall-cmd --permanent --add-serviceftp sudo firewall-cmd --permanent --add-port30000-31000/tcp sudo firewall-cmd --reload如果看到FirewallD is not running恭喜说明防火墙没开可以直接测试省了一步测试方法方法1使用Linux命令行#先把/sbin/nologin加入白名单 echo /sbin/nologin /etc/shells #重启vsftpd服务 systemctl restart vsftpd # 连接FTP服务器 ftp 你的服务器IP # 输入用户名ftpuser # 输入密码123456 # 常用FTP命令 ls # 查看文件列表 put 文件名 # 上传文件 get 文件名 # 下载文件 bye # 退出如果你还没有ftp命令[rootlocalhost upload]# ftp bash: ftp: 未找到命令...执行下面命令安装yum install ftp -y方法2使用Windows资源管理器在地址栏输入ftp://你的服务器IP 输入用户名密码即可访问方法3使用FileZilla等FTP客户端主机你的服务器IP 用户名ftpuser 密码123456 端口21六、 高级配置进阶玩法(1) 配置基于主机的访问控制和传输限制IP访问控制sudo vi /etc/vsftpd/vsftpd.conf添加以下配置# 限制某些IP不能访问就像拉黑名单 tcp_wrappersYES # 在/etc/hosts.allow中添加允许的IP echo vsftpd: 192.168.1.0/255.255.255.0 /etc/hosts.allow # 在/etc/hosts.deny中添加拒绝的IP echo vsftpd: 10.0.0.50 /etc/hosts.deny传输限制# 在vsftpd.conf中添加 max_clients50 # 最大连接数 max_per_ip5 # 每个IP最大连接数 local_max_rate1024000 # 本地用户最大速率(字节/秒) anon_max_rate512000 # 匿名用户最大速率(2) 配置基于PAM的虚拟用户虚拟用户就像临时工只有FTP权限没有系统权限更安全步骤1创建虚拟用户数据库# 创建虚拟用户名单 sudo vi /etc/vsftpd/virtual_users.txt输入内容virtualuser1 password1 virtualuser2 password2步骤2生成数据库文件# 安装必要的工具 sudo yum install db4-utils -y # 生成数据库 sudo db_load -T -t hash -f /etc/vsftpd/virtual_users.txt /etc/vsftpd/virtual_users.db # 设置权限 sudo chmod 600 /etc/vsftpd/virtual_users.*步骤3配置PAM认证sudo vi /etc/pam.d/vsftpd.virtual添加内容auth required pam_userdb.so db/etc/vsftpd/virtual_users account required pam_userdb.so db/etc/vsftpd/virtual_users步骤4创建虚拟用户根目录sudo mkdir -p /home/virtual_user1 sudo mkdir -p /home/virtual_user2 sudo chown -R ftp:ftp /home/virtual_*步骤5修改vsftpd配置sudo vi /etc/vsftpd/vsftpd.conf添加/修改# 禁用匿名用户和本地用户 anonymous_enableNO local_enableYES # 启用虚拟用户 guest_enableYES guest_usernameftp virtual_use_local_privsYES # PAM配置 pam_service_namevsftpd.virtual # 用户配置目录 user_config_dir/etc/vsftpd/virtual_users_config步骤6创建用户特定配置sudo mkdir /etc/vsftpd/virtual_users_config # 为用户1创建配置 sudo vi /etc/vsftpd/virtual_users_config/virtualuser1内容local_root/home/virtual_user1 write_enableYES anon_world_readable_onlyNO anon_upload_enableYES anon_mkdir_write_enableYES anon_other_write_enableYES重启服务sudo systemctl restart vsftpd现在可以用virtualuser1/password1登录测试了七、常见问题及解决问题1连接被拒绝# 检查服务状态 sudo systemctl status vsftpd # 检查端口监听 sudo netstat -tulpn | grep :21 # 检查防火墙 sudo firewall-cmd --list-all问题2登录失败# 检查用户是否在禁止列表中 sudo cat /etc/vsftpd/user_list sudo cat /etc/vsftpd/ftpusers # 检查PAM配置 sudo tail -f /var/log/secure问题3无法上传文件# 检查目录权限 ls -ld /var/ftp/pub/upload # 检查SELinux状态 getenforce # 如果是Enforcing可以暂时禁用 sudo setenforce 0 # 或者设置SELinux策略 sudo setsebool -P ftp_home_dir on问题4被动模式失败# 检查被动模式端口范围 sudo grep pasv /etc/vsftpd/vsftpd.conf # 确保防火墙开放了被动模式端口 sudo firewall-cmd --list-ports | grep 30000八、总结恭喜你经过这次学习你已经✅理解了FTP的作用- 互联网的文件快递员✅成功安装并启动了vsftpd- 创建了自己的快递公司✅掌握了基本配置- 匿名访问、用户登录、文件上传✅学会了高级配置- 访问控制、速率限制、虚拟用户✅掌握了故障排查- 遇到问题知道怎么解决安全提醒重要⚠️生产环境一定要用复杂密码考虑使用SFTP基于SSH更安全定期检查日志监控异常访问常用命令总结sudo systemctl start vsftpd # 启动 sudo systemctl stop vsftpd # 停止 sudo systemctl restart vsftpd # 重启 sudo systemctl status vsftpd # 查看状态 sudo tail -f /var/log/vsftpd.log # 查看实时日志现在你已经拥有了一个属于自己的文件传输服务无论是分享照片、备份文件还是团队协作都能轻松搞定
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →