ftp无法上传文件 无法列出目录 Entering Extended Passive Mode bash: setsebool: command not found

本文介绍如何在CentOS服务器上开启并配置VSFTPD服务,解决常见错误如无法访问用户家目录等问题,无需重启服务器即可实现。
首先,需要在centos服务器上将vsftpd服务开启。
因为默认情况下,vsftpd服务是关闭的。
最简单的办法就是在图形界面下,通过services将vsftpd服务开启。
开启vsftpd服务之后,肯定会报错的。一般情形下,会报下面的这个错误。
意思是无法访问该用户的home目录。

SELinux is preventing the ftp daemon from reading users home directories(home).

或者在客户端使用ls列出目录时出现Entering Extended Passive Mode 

解决方法:官方文档说明,
setsebool -P ftp_home_dir=1(仅需要执行该命令即可以使用了)
你执行上面的命令就会报下面的错误:

bash: setsebool: command not found

解决办法:

一:
[root@bradydreamer brady]# find / -name "setsebool"
/usr/sbin/setsebool
[root@bradydreamer ~]# export PATH=$PATH:/usr/sbin
[root@bradydreamer ~]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/sbin:/usr/X11R6/bin:/usr/sbin
[root@jboss01 sbin]#setsebool -P ftp_home_dir=1

二:
[root@jboss01 sbin]# cd /usr/sbin
[root@jboss01 sbin]# ./setsebool -P ftp_home_dir=1
上述两种方法都可以解决该问题的。
这样,FTP服务就可以使用了。不需要重启服务器或者vsftpd服务。
如果需要重启ftp服务的话,执行下面的命令:
[root@jboss01 sbin]#./sbin/service vsftpd restart

这样就可以重启FTP服务了。

另外,如果查看ftp开启了什么权限的话,可以执行下面的命令:

[root@jboss01 sbin]# getsebool -a | grep ftp

当然,这个命令也是在/usr/sbin目录下的

启动,关闭ftp服务器的方法:

1,启动命令

/etc/init.d/vsftpd start stop restart

./sbin/service vsftpd start stop restart
### 229 Entering Extended Passive Mode 响应的含义 在FTP协议中,`229 Entering Extended Passive Mode` 是服务器对客户端发出 `EPSV` 命令的响应,表示服务器已进入扩展被动模式。这种模式下,服务器会动态分配一个端口号,并通过响应告知客户端,客户端随后使用该端口号建立数据连接。这种方式主要用于解决传统被动模式(PASV)在IPv6和NAT环境中的连接问题,增强了网络兼容性[^5]。 响应信息的格式通常为 `229 Entering Extended Passive Mode (|||port|)`,其中 `port` 是服务器分配的数据连接端口号。例如,`229 Entering Extended Passive Mode (|||30045|)` 表示客户端应使用端口 `30045` 来建立数据连接[^1]。 ### 229 Entering Extended Passive Mode 的作用 该响应的主要作用是启用扩展被动模式,使客户端能够在复杂的网络环境中成功建立数据连接。与传统被动模式相比,EPSV 不需要服务器指定IP地址,仅提供端口号,从而简化了配置,尤其适用于IPv6和多宿主服务器环境[^5]。 此外,EPSV 模式在某些系统(如Solaris)上可能成为默认行为,客户端若不支持该模式,可能会遇到连接异常或数据传输失败的问题。在这种情况下,可以通过关闭EPSV模式或切换回PASV模式来规避问题[^2]。 ### 229 Entering Extended Passive Mode 的常见问题 尽管EPSV模式提升了网络兼容性,但在某些场景下仍可能引发问题。例如,在Linux系统中,如果防火墙或SELinux策略限制了动态端口的使用,即使服务器成功进入EPSV模式,客户端仍可能因无法建立数据连接而出现文件传输失败的错误[^4]。 此外,某些FTP客户端可能默认启用EPSV模式,但若网络设备或代理不支持该特性,也可能导致连接超时或中断。在这种情况下,可以尝试禁用EPSV模式并启用PASV模式,或者调整客户端配置以兼容EPSV模式[^3]。 以下是一个在Python中使用ftplib库禁用EPSV模式并启用PASV模式的示例: ```python from ftplib import FTP ftp = FTP() ftp.connect('ftp.example.com') ftp.login(user='username', passwd='password') # 禁用EPSV模式,启用PASV模式 ftp.set_pasv(True) # 列出当前目录内容 ftp.retrlines('LIST') ftp.quit() ``` 该代码通过 `set_pasv(True)` 强制使用PASV模式,避免因EPSV模式引发的连接问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值