解决vsftpd 读取目录列表失败的问题

使用第三方FTP软件filezilla进行登陆,出现如下错误:

解决vsftpd 2.2.2读取目录列表失败的问题

状态:    正在连接 192.168.1.6:21...
状态:    连接建立,等待欢迎消息...
响应:    220 (vsFTPd 2.2.2)
命令:    USER ftp
响应:    331 Please specify the password.
命令:    PASS ***
响应:    230 Login successful.
命令:    SYST
响应:    215 UNIX Type: L8
命令:    FEAT
响应:    211-Features:
响应:     EPRT
响应:     EPSV
响应:     MDTM
响应:     PASV
响应:     REST STREAM
响应:     SIZE
响应:     TVFS
响应:     UTF8
响应:    211 End
命令:    OPTS UTF8 ON
响应:    200 Always in UTF8 mode.
状态:    已连接
状态:    读取目录列表...
命令:    PWD
响应:    257 "/"
命令:    TYPE I
响应:    200 Switching to Binary mode.
命令:    PASV
响应:    227 Entering Passive Mode (192,168,1,6,23,8).
命令:    LIST
错误:    连接超时
错误:    读取目录列表失败


该错误是由iptables的配置引起的,临时的解决方法是执行如下命令:

[root@localhost soft]# modprobe ip_nat_ftp

再次登陆列表正常啦!

但当你重新启动服务器则iptables规则失效,又会出现相同的情况,所以我们需要修改/etc/sysconfig/iptables-config文件,

[root@localhost soft]# vi /etc/sysconfig/iptables-config

# Load additional iptables modules (nat helpers)
#   Default: -none-
# Space separated list of nat helpers (e.g. 'ip_nat_ftp ip_nat_irc'), which
# are loaded after the firewall rules are applied. Options for the helpers are
# stored in /etc/modprobe.conf.
IPTABLES_MODULES=""

# Unload modules on restart and stop
#   Value: yes|no,  default: yes
# This option has to be 'yes' to get to a sane state for a firewall
# restart or stop. Only set to 'no' if there are problems unloading netfilter
# modules.
IPTABLES_MODULES_UNLOAD="yes"

......

IPTABLES_MODULES_UNLOAD="yes"的意义:每次iptables停止或者重启都会Unload modules

IPTABLES_MODULES=""的意义:每次防火墙规则应用以后加载的模块

我们需要把

IPTABLES_MODULES=""

修改为:

IPTABLES_MODULES="ip_nat_ftp"

这样重启服务器之后就不必再每次都执行mobprobe啦。


解决vsftpd 2.2.2读取目录列表失败的问题
### 配置DNS服务器 在Linux系统中配置DNS服务器通常涉及使用BIND(Berkeley Internet Name Domain),这是最常见的DNS服务器软件之一。以下是关于如何配置DNS服务器的相关说明: 通过编辑`named.conf`文件来定义区域和记录,确保该文件位于默认路径 `/etc/named/` 或者 `/var/named/chroot/etc/` 下[^3]。例如,在配置正向解析区时,需指定如下参数: ```bash zone "example.com" IN { type master; file "/var/named/example.com.zone"; }; ``` 对于反向解析,则需要创建类似的条目,并指向相应的IP地址范围。 还需要注意SELinux的安全策略可能会影响服务运行状态,可以通过命令 `getsebool -a | grep named` 来查看当前SELinux上下文中有关named进程的状态。 如果遇到任何权限错误或者无法启动服务的情况,请检查日志文件 `/var/log/messages` 和 `/var/log/named.log` 中的信息以定位具体原因[^4]。 --- ### HTTP Web服务器的安装与配置 针对HTTP服务而言,可以选择多种不同的实现方式,其中最为广泛使用的开源解决方案包括 Apache 和 Nginx 。这里主要介绍基于CentOS系统的Apache HTTP Server 的基本部署流程: #### 安装Apache 执行以下命令完成初始安装过程: ```bash yum install httpd -y ``` #### 启动并启用Httpd服务 为了使Web服务器能够正常工作,还需将其设为开机自启项并通过systemctl工具激活它: ```bash systemctl start httpd.service systemctl enable httpd.service ``` #### 设置防火墙规则允许外部访问80端口 由于现代Linux发行版普遍采用firewalld作为其内置防火墙管理器,默认情况下会阻止未授权的数据包流入本机网络接口卡上监听的服务端口号。因此要开放标准HTTP流量所依赖的标准TCP连接目标位置即第80号虚拟通道给公众互联网上的所有设备可见。 ```bash firewall-cmd --permanent --add-service=http firewall-cmd --reload ``` 最后一步就是确认网页根目录下的index.html文档存在与否以及内容正确无误以便测试成功加载页面效果: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Test Page</title> </head> <body> <p>Hello from your new web server!</p> </body> </html> ``` --- ### vsftpd FTP服务器的安装与基础设置 Vsftpd 是一种非常安全高效的FTP守护程序选项适用于大多数UNIX类平台之上。下面是如何快速建立一个简单的匿名读取型共享资源站点实例教程[^1][^2]: #### 软件获取与初始化操作 利用YUM仓库直接拉取最新稳定版本二进制包形式分发出来的vsftpd应用组件到本地机器环境中去。 ```bash yum install vsftpd -y ``` 接着开启对应的服务单元并且设定成随主机引导自动恢复上线模式运作起来。 ```bash systemctl start vsftpd systemctl enable vsftpd ``` #### 修改核心配置属性值 打开主配置档位进行必要的调整更改动作使得满足实际业务需求场景的要求。比如允许匿名登录功能开关控制字段anon_root=/path/to/share/folder 就是用来声明当访客身份尝试进入我们的ftp空间时候应该被映射至哪个具体的物理存储位置上去查找可用资产列表出来展示给他们看而已啦!记得保存退出后再重启一次整个daemon进程生效新的改动哦~ ```bash vi /etc/vsftpd/vsftpd.conf # 添加或修改这些行 anonymous_enable=YES anon_root=/srv/ftp listen=NO listen_ipv6=YES pasv_min_port=10000 pasv_max_port=10100 ``` 之后再次调用 systemctl restart 命令刷新一下刚才所做的那些变更即可. 另外值得注意的是某些特定环境下可能会受到强制性的MAC类型标签机制干扰而导致部分特性不可用的现象发生(比如说上传下载失败之类的),这时候就需要临时关闭掉这个防护措施再试试看了哈~ 只需要用文本编辑器找到对应的全局环境变量描述文件然后把 SELINUX=enforcing 改成 permissive 即可轻松搞定咯~ ```bash sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config setenforce 0 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值