FTP主动模式上传文件时返回"ftp: accept: Resource temporarily unavailable"
FTP主动模式上传文件时返回
Passive mode off
ftp: accept: Resource temporarily unavailable
这个问题要从ftp的2种模式说起
PORT & PASV
FTP协议有两种工作方式:PORT方式和PASV方式,中文意思为主动式和被动式。
PORT(主动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,客户端在命令链路上用PORT命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的XXXX端口发送连接请求,建立一条数据链路来传送数据。
PASV(被动)方式的连接过程是:客户端向服务器的FTP端口(默认是21)发送连接请求,服务器接受连接,建立一条命令链路。当需要传送数据时,服务器在命令链路上用PASV命令告诉客户端:“我打开了XXXX端口,你过来连接我”。于是客户端向服务器的XXXX端口发送连接请求,建立一条数据链路来传送数据。
解决办法
1,继续使用PORT模式,那么客户端就需要放开FTP服务器的IP(因为客户端到底开放多少端口去跟服务器连接也不知道.当然如果客户端机器没开启防火墙就不会有这个问题.)
firewall-cmd --add-rich-rule="rule family="ipv4" source address="1.2.3.4" accept"
firewall-cmd --reload
firewall-cmd --list-all
2,继续使用PASV模式,vsftpd需添加:pasv_address=公网IP
listen=YES #指定被动模式时的公网IP地址时只能监听在IPv4地址
listen_ipv6=NO #与listen冲突,默认监听IPv6地址,当监听在IPv4时IPv6必须禁用,否则vsftpd.service将无法启动
pasv_enable=YES
pasv_min_port=12000 #ftp服务端也要放开对应范围端口
pasv_max_port=12100
pasv_address=1.2.3.4 #指定被动模式时的公网IP地址
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)