最近在阿里云上买了个ecs来玩,结果配置好vsftpd后在终端连接成功,但使用filezilla访问报错,看日志返回服务器发回了不可路由的地址。使用服务器地址代替
,连接和登录都成功,但读取不到目录,于是开始网上百度。
一、网上都是让你去对filezilla进行设置:
- 设置——连接——FTP——主动模式,修改为“退回到被动模式”
- 将【传输设置】选择为"被动"
但是很遗憾,毛用都没有。接下来就开始第二轮爬坑,并找到了新的解决思路:
二、由于防火墙对端口限制,造成访问问题:
SELinux是一个FTP服务器是CentOS的防火墙组件。由于 vsftpd 默认被 SELinux 拦截,会出现以下等问题:
226 Transfer done (but failed to open directory).(传输完成,但是打开路径失败)
550 Failed to change directory(更改路径失败)
553 Could not create file.
SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)
解决方案:
- 关闭SELinux简单粗暴,命令:
sudo vim /etc/selinux/config
selinux.jpg
将selinux设置为disabled。
- 对防火墙策略进行设置
(推荐,上面那种方式太野蛮了)
:
注意:方案2要在在方案1中的selinux=able的情况下使用使用,否则会提示:getsebool: SELinux is disabled,无法进行接下来的步骤
- setenforce 0 #暂时让SELinux进入Permissive模式
- 运行getsebool -a | grep ftpd
getsebool -a | grep ftpd
#以下是显示出来的权限,off是关闭权限,on是打开权限
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
ftpd_connect_db --> off
ftpd_use_passive_mode --> off
ftp_home_dir --> off
最后两项ftp_home_dir
和allow_ftpd_full_access
必须为on
才能使vsftpd
具有访问ftp根目录,以及文件传输等权限,运行命令:
setsebool -P ftp_home_dir 1
setsebool -P allow_ftpd_full_access 1
运行完了以后,我们再重新恢复SELinux进入Enforcing模式,命令:
setenforce 1
正常情况到此时就可以正常访问了,如果还不行,注意文件登录用户对该文件的权限是否时可读写。
- 到了此时我居然还时还不能读取,我都把连接ftp服务器上的所有者改为此时登录的账户了。当我在自己电脑上进行了上面两步设置时,我访问自己本地安装的vsftpd是没问题的,由此猜测应该时阿里云上服务器上还有什么没有设置。果然最后让我找到了问题。
是没有开放对应端口设置所造成的
: vsftpd_conf.jpg
- 如上图所示:编辑 vim /etc/vsftpd/vsftpd.conf文件,先设置
pasv_enable=YES
可被动连接,如何设置被动端口范围pasv_max_port \pasv_min_port
,设置这一步是因为有可能我们连接的时候使用了被动连接。(FTP有两种工作方式:PORT FTP(主动模式)和PASV FTP(被动模式)。主动连接:ftp_data_port=20
设置在PORT方式下,FTP数据连接使用的端口,默认值为20,注意:
主动连接时要注意不要填错了) - 去iptables打开我们设置的端口,命令:vim /etc/sysconfig/iptables
iptables.jpg
这里看到我们放开了8080、80、21等端口,在将我们刚刚设置的端口放开。(有可能你cd 到/etc/sysconfig
中却没有iptables
这个文件,不要慌随便添加一个策略就出来了,具体方法百度一下,我这就不写了)。到这里终于把问题解决了。
其实阿里还给我们提供了更简单的方式(如果你是使用的阿里云服务器):
- 首先打开服务器
实例列表
进入到本实例安全组
并点击配置规则
:
实例.jpg - 进入到了安全组后,1:点击
添加安全组规则
,2:设置我们刚刚在vsftpd设置的端口(我的是61001/62000,3处填写0.0.0.0/0就可以了。
安全组.jpg
在多说两句:
vsftp配置时还有很多需要注意的地方(如:如添加用户列表文件,设置权限等等),但网上资料都写得不错,照着配基本都ok.
网友评论