在CentOS 7下配置vsftpd时遇到了一个问题:端口都正常开放了,并且vsftpd服务也是正常运行。但是使用FileZilla来连接时,发生了如下错误:
状态: 已登录
状态: 读取目录列表...
命令: PWD
响应: 257 "/home/xxxxx" is the current directory
命令: TYPE I
响应: 200 Switching to Binary mode.
命令: PASV
响应: 227 Entering Passive Mode (192,168,x,xxx,xxx,xx).
命令: LIST
错误: 20 秒后无活动,连接超时
错误: 读取目录列表失败
这种情况至少证明ftp已经能正常登陆。上网搜了一圈,发现只是读取目录列表的包被拦截了,提供的解决方法基本跟这里的类似:
但是lz无论执行:
modprobe ip_nat_ftp
或者尝试修改/etc/sysconfig/iptables-config
依然还是出现同样的问题。
最终发现需要直接在防火墙上开启ftp
服务才可以:
firewall-cmd --add-service=ftp --permanent
开启后重启防火墙,防火墙当前的信息如下:
[root@localhost xxxxxx]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens33
sources:
services: cockpit dhcpv6-client ftp ssh
ports: 21/tcp 20/tcp
protocols:
在services
中看到ftp
就是成功了。FileZilla已经可以正常访问: