Centos7 ftp环境搭建
没玩过linux,折腾了半天的ftp,好不容易亲测通过了。不容易啊。
操作环境:vm虚拟机 centos7
首先:搞定网络问题;默认情况下使用ifconfig可以看到虚拟机下是无网络的。(注:虚拟机网络设置为NAT或桥接模式都是可以的)
输入命令nmtui 打开网络配置
回车-》回车
将倒数第二项 Automatically connect 勾上 然后就有网络了
然后更新系统:yum update
查看vsftpd是否已安装:vsftpd -v (默认都是没安装的)
安装vsftpd:yum install vsftpd
然后 y y y......
安装完成后配置防火墙(firewall)
firewall-cmd --permanent --add-service=ftp
firewall-cmd --add-port=21/tcp
firewall-cmd --zone=public --add-port=10060-10090/tcp --permanent
firewall-cmd --reload
#firewall开机自动启动
systemctl enable firewalld.service
注:阿里云服务器需要在管理平台添加安全组规则(老坑了)
在“云服务器ECS->实例->管理->本实例安全组->配置规则”中,选择“添加安全组规则“。开放21端口(可以是20/21)
配置vsftpd: vi /etc/vsftpd/vsftpd.conf
打开并设置以下配置:
anonymous_enable=NO (修改)
chroot_local_user=YES (取消注释)(此项为限定用户访问目录为当前目录)
然后最底部设置并添加:
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
listen_port=21
data_connection_timeout=12
guest_enable=YES
guest_username=ftpuser (ftp的用户名,多个用户可重复这一行并修改用户名)
user_config_dir=/usr/website(用户访问的文件夹)
pasv_enable=YES
virtual_use_local_privs=YES
pasv_min_port=10060
pasv_max_port=10090
accept_timeout=5
connect_timeout=1
allow_writeable_chroot=YES (解决连接是提示500 OOPS:vsftpd:refusing to run with writable root inside chroot() 的问题)
退出并保存:wq
重启vsftpd:
systemctl restart vsftpd.service
相关命令:systemctl start vsftpd.service
systemctl status vsftpd.service
创建文件夹: mkdir /usr/website
创建用户:
useradd -g root -M -d /usr/website -s /sbin/nologin ftpuser
设置密码:
passwd ftpuser
文件夹授权:
chown -R ftpuser.root /usr/website
到目前为止,还有最后一个问题:selinux (不设置的情况下ftp提示:553 Could not create file)
捣鼓了半天都没配置成功。最后尝试了两个方案。
一、关闭selinux;
vi /etc/selinux/config
设置 SELINUX=Disabled
重启系统。
二、将selinux改成permissive(宽容模式)
命令:setenforce 0
然后,可以试试看了。
============================================================================
以下是425解决方案
425 Failed to establish connection
这个问题在使用pasv模式的时候经常会遇到
需要操作本地防火墙,开放本地端口(根据上文操作则是开放10060-10090)。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库