centos搭建的ftp,执行pwd时没问题;在执行ls命令时,报错425failed to establish connection。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos搭建的ftp,执行pwd时没问题;在执行ls命令时,报错425failed to establish connection。相关的知识,希望对你有一定的参考价值。

防火墙已经关闭,求高手解答。

首先先整理下思路,确认以下是否调整

1、防火墙(本机、客户机)
2、FTP目录的权限
3、客户机是否是IPv6网络
4、客户机的网关限制了外网ftp


如果能登录,不能使用ls或者dir命令。

那就说明,主要问题在端口被防火墙控住。
提示语句:
200 PORT command successful. Consider using PASV.
425 Failed to establish connection.
这时候,可以在ftp下使用命令:quote PASV
试试用以被动模式连接。
一般DOS命令行下都是默认以PORT主动模式连接。
即,端口21监听,处理控制信息,再以端口20连接客户端进行数据传送。
而,经常的,通过外网的NAT的,基本端口20的数据连接都会被禁止掉。
所以,如果想对外网开放ftp,最好使用PASV模式。
PASV被动模式是指,以端口21监听,有连接请求时,随机开放一个比较大的端口号来处理数据传输。
vsftp中,通过编辑 /etc/vsftp.conf 实现启用PASV连接。
sudo vi /etc/vsftp.conf
在配置文件中添加下面语句:
pasv_enable=YES
pasv_min_port=6000
pasv_max_port=7000
也即,启动PASV连接模式,开放6000-7000端口号作为数据传送端口。
此外,如果是对外网开放,必须在路由器的转发规则中,开放21端口。
为了保险,可以将6000-7000端口也写入到iptables中白名单中。
命令:
sudo iptables -A INPUT -p tcp --dport 6000:7000 -j ACCEPT
在ubuntu中一般可以不用,因为ubuntu虽然有iptables,但默认是没有规则的,
也即,不会设置端口限制,但其他版本就最好加上哈。
此外,如果带有selinux的,最好也关闭。
ubuntu是默认没安装selinux。
像redhat、centOS之类的,
修改/etc/selinux/config文件中的SELINUX="" 为disabled ,然后重启。

参考技术A 如果你的Linux版本带有selinux,关闭试试。 参考技术B 先输pass命令

以上是关于centos搭建的ftp,执行pwd时没问题;在执行ls命令时,报错425failed to establish connection。的主要内容,如果未能解决你的问题,请参考以下文章

阿里云CentOS7.4上搭建FTP服务器

Centos上搭建ftp服务器

centos 7虚拟用户访问FTP

centos搭建ftp服务

阿里云CentOS7.4上搭建FTP服务器

PHP - CentOS下开发运行环境搭建(Apache+PHP+MySQL+FTP)