`
orcl_zhang
  • 浏览: 242245 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

启LINUX防火墙后,FTP PASV不能正常登录问题

 
阅读更多
转载:http://www.cnblogs.com/redhatlinux/archive/2012/04/03/2431453.html

linux服务器开启防火墙,常规设置在防火墙配置文件中添加21端口, FTP服务器通过port能够访问,pasv不能访问。而客户端一般是采用pasv方式连接。解决方法如下:

首先要了解概念;

FTP支持两种模式,一种方式叫做Standard (也就是 PORT方式,主动方式),一种是 Passive (也就是PASV,被动方式)。 Standard模式 FTP的客户端发送 PORT 命令到FTP服务器。Passive模式FTP的客户端发送 PASV命令到 FTP Server。

PORT 和 PASV的简单区别如下:

Port模式FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。

Passive模式在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到 Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。

因为IE浏览器默认使用的是Passive(被动)模式,所以要连接Linux服务器大于1024端口,而防火墙并没有开发1024以上的端口,导致登录ftp服务器被防火墙阻止。

vsftp:

修改vsftpd.conf配置文件让它支持Passive(被动)模式

#vim /etc/vsftpd/vsftpd.conf

在最后一行添加如下内容:

pasv_min_port=10050 (设置被动模式的端口范围)

pasv_max_port=10060(设置被动模式的端口范围)

pureftp:

vi pure-ftpd.conf

# 被动连接响应的端口范围。- for firewalling.

# PassivePortRange 10050 10060


在防火墙配置文件iptables中添加端口

#vim /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10050:100060 -j ACCEPT

重启服务使其生效

#service vsftpd rstart

#service iptables restart
分享到:
评论

相关推荐

    开启LINUX防火墙后,FTP PASV不能正常登录问题

    绍开启LINUX防火墙后,FTP PASV不能正常登录问题

    FTP客户端C源码(Linux版)

    7. **PASV**:在被动模式下,服务器打开一个随机端口等待客户端连接,以避免防火墙问题。 8. **PORT**:在主动模式下,客户端告诉服务器它将监听的端口号,然后服务器主动连接到这个端口。 **PASV和PORT模式** FTP...

    linux下的ftp实现

    在实际的FTP客户端实现中,还需要考虑错误处理、多线程(用于数据连接和控制连接的并发处理)、被动模式(PASV)以处理防火墙问题,以及可能的二进制模式传输(用于非文本文件)。此外,为了实现更完整的FTP功能,...

    linux-FTP客户端(纯C代码)

    在Linux环境中,FTP(File Transfer Protocol)是一种广泛用于在不同计算机之间传输文件的协议。本文将深入探讨如何使用纯C语言编写一个简单的FTP客户端,实现基本的上传和下载功能,但不涉及断点续传机制。 FTP...

    linux的FTP服务器

    Linux下的FTP服务器是一种用于在不同计算机之间进行文件传输的服务,基于TCP/IP协议族中的File Transfer Protocol(FTP)。FTP允许用户从远程服务器上下载文件或上传文件到服务器,为Internet用户提供了一个方便、...

    ftp.rar_linux C++ FTP上传

    为了避免防火墙或NAT设备的问题,FTP服务器可能会使用被动模式。在这种模式下,客户端主动建立数据连接,而不是服务器。libcurl支持设置`CURLOPT_FTP_USE Passive`来启用PASV模式。 通过以上步骤和知识,你可以在...

    linux下FTP服务器项目

    在Linux系统中,FTP(File Transfer Protocol)服务器是一种常见的服务,允许用户通过网络远程访问和管理文件。本项目旨在构建一个基本的FTP服务器,让用户能够登录、查看、下载和上传资源。下面将详细介绍Linux下...

    linux c 通过FTP 协议上传文件 源码 亲测可用

    在Linux环境中,使用C语言通过FTP(File Transfer Protocol)协议上传文件是一项常见的任务,尤其对于系统集成、自动化脚本或应用程序开发来说。FTP是一种用于在Internet上可靠地传输文件的标准协议,而C语言则提供...

    linux c 实现 ftp 服务器客户端程序

    6. **数据传输**:通过数据套接字进行文件的上传和下载,可能需要使用主动模式或被动模式来处理防火墙和NAT穿透问题。 FTP客户端端则主要负责: 1. **建立连接**:客户端首先建立与服务器的控制连接,通常通过TCP...

    Arm-Linux下使用的ftp服务和telnet服务1

    本主题将深入探讨如何在Arm-Linux环境下搭建和使用FTP(File Transfer Protocol)和TELNET服务,这两个服务都是远程访问和文件传输的基础工具。 FTP服务允许用户通过网络在不同的计算机之间上传和下载文件,而...

    linux-ftp服务器的配置及各种知识点.doc

    此外,还可以配置PASV模式以适应防火墙或NAT环境,通过修改`pasv_enable=YES`和`pasv_min_port`及`pasv_max_port`来设定端口范围。为了增强安全性,可以禁用写入权限,限制用户目录,甚至使用SSL/TLS加密传输。 总...

    linux 下的 ftp

    Linux下的FTP(File Transfer Protocol)是一种广泛用于在不同网络间传输文件的协议,尤其在Linux服务器环境中,FTP服务是常用的服务之一。FTP客户端和服务器之间的交互使得用户可以在本地计算机和远程服务器之间...

    ftp.rar_ftp_ftp linux

    这个命令允许用户登录到远程FTP服务器,浏览目录,上传、下载文件等。例如,`ftp hostname`启动FTP客户端,`cd directory`改变远程目录,`get filename`下载文件,`put filename`上传文件。 **3. FTP服务器软件** ...

    ftp_server.rar_FTP SERVER_ftp linux

    5. **防火墙配置**:为了确保FTP服务对外可用,可能需要在Linux防火墙(如iptables或firewalld)中打开FTP所需的端口(默认为20和21)。 6. **SSL/TLS加密**:为了增强FTP服务的安全性,可以启用FTPS(FTP over TLS...

    Linux中ftp服务器的配置

    在Linux系统中,FTP(File Transfer Protocol)服务器是一种常见的服务,它允许用户通过网络上传、下载文件。本篇文章将深入探讨FTP服务器的工作原理、重点介绍VSFTPd服务器的配置以及如何区分不同类型的FTP用户。 ...

    linux下ftp服务器配置手册

    5. 测试FTP服务:使用本地的FTP客户端(如`ftp`命令行工具)进行匿名登录和文件访问,确保服务正常工作。 配置FTP服务器时,还需注意安全问题,如限制用户权限、启用SSL/TLS加密传输以保护数据安全、设置防火墙规则...

    类似linux的ftp命令,短小精悍的ftp工具,可直接移植到嵌入式系统下面

    这种设计是为了处理防火墙和NAT环境下的连接问题。 在Linux的FTP命令行客户端中,用户可以执行以下操作: 1. **登录**:使用`open <hostname>`或`open <IP address>`连接到FTP服务器,然后输入用户名和密码。 2. **...

    linux C系的ftp客户端和服务器端

    此外,为了使FTP客户端和服务器更加健壮,还可以添加一些高级特性,比如支持断点续传、多线程处理多个客户端连接、支持被动模式(PASV)以解决防火墙问题,以及使用控制通道和数据通道分离以提高效率。 在实际开发...

    使用linux socket的基本的FTP协议实现

    被动模式通常用在防火墙或NAT环境,因为它避免了服务器向外连接的问题。 接下来,我们将探讨如何使用Linux socket API来实现FTP协议的被动模式: 1. **创建服务器端socket**: 使用`socket()`函数创建一个socket...

    linux中FTP服务配置(详细).

    为了确保FTP服务的正常运行,需要针对不同的数据传输模式进行防火墙设置: - **主动模式**: - 允许客户端从大于1024的端口连接到服务器的21端口。 - 允许服务器从21端口回应客户端的大于1024端口的连接请求。 - ...

Global site tag (gtag.js) - Google Analytics