Windows Server FTP详解

搭建:

Windows Server 2012R2 FTP服务介绍及搭建_windows2012server r2ftp怎么做?-CSDN博客

问题: 

https://www.cnblogs.com/123525-m/p/17448357.html

 Java使用

被动FTP(PASV)

被动FTP模式在数据连接建立过程中,由服务器端发起数据端口连接,客户端被动接受。这对于客户端位于防火墙或NAT之后的场景特别有用。

import org.apache.commons.net.ftp.FTPClient;

FTPClient ftpClient = new FTPClient();
ftpClient.enterLocalPassiveMode(); // 进入被动模式
ftpClient.connect(server, port);
ftpClient.login(user, password);
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
// ...进行文件传输操作...
ftpClient.logout();
ftpClient.disconnect();

主动FTP(PORT)

主动FTP模式在数据连接建立过程中,由客户端发起数据端口连接,服务器端被动接受。主动FTP模式在客户端和服务器端都需要进行适当的配置以支持这种模式。

要切换到主动FTP模式,你需要更改FTP服务器的配置,这可能涉及到与你的网络管理员或服务提供商进行沟通。对于Java代码,你可以使用以下方式:

 
import org.apache.commons.net.ftp.FTPClient;

FTPClient ftpClient = new FTPClient();
ftpClient.enterLocalActiveMode(); // 进入主动模式
ftpClient.connect(server, port);
ftpClient.login(user, password);
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
// ...进行文件传输操作...
ftpClient.logout();
ftpClient.disconnect();

从被动FTP到主动FTP的转换

如果你需要从被动FTP切换到主动FTP,并且你无法更改FTP服务器的配置(例如,你正在使用一个你不能更改其设置的第三方FTP服务器),那么你需要更改你的客户端配置。你可以通过以下步骤实现:

  1. 创建一个新的临时端口。这个端口将用于建立数据连接。你可以使用任何你喜欢的工具或库来创建这个端口。例如,你可以使用Java的ServerSocket类来创建一个本地服务器。
  2. 配置你的FTP客户端使用这个临时端口。这可以通过在创建FTPClient实例时设置其本地IP和端口来实现。例如:
FTPClient ftpClient = new FTPClient();
ftpClient.setLocalPort(port); // 设置本地端口为你的临时端口
ftpClient.enterLocalActiveMode(); // 进入主动模式
ftpClient.connect(server, port);
ftpClient.login(user, password);
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
// ...进行文件传输操作...
ftpClient.logout();
ftpClient.disconnect();

这样,你的FTP客户端将使用你指定的本地端口来建立数据连接,而不是由服务器端发起连接。这实际上是模拟了主动FTP的工作方式。但请注意,这种方法可能不适用于所有情况,特别是当你的客户端位于防火墙或NAT之后时。在这种情况下,你可能需要找到其他方法来解决问题,例如配置你的防火墙或NAT设备来允许这种类型的连接。

Windows FTP服务设置

需要注意的是被动端口设置完后要重启一下【Microsoft FTP Service】服务才能生效

如何配置被动模式(PASV)的数据端口?

1、打开IIS管理器,点击左侧的服务器,进入服务器设置主页找到 FTP功能 中的 FTP防火墙支持 点击进入

2、在数据通道端口范围中填写端口范围,例如51025-51050,(如果设置一个端口,例如设置50001-50001)然后点击 应用 设置

3、 在开始菜单 >> 管理工具 >> 服务 中,找到【Microsoft FTP Service】服务,重启该服务才能生效

使用ftp服务端口不能通过外网访问,可以用nps透传 需要注意的是 iis防火墙的外部IP地址要设置成透传后的外部地址

如果是云服务器 在设置完被动端口范围后,云服务器安全组开放下这个端口范围,然后重新连接FTP正常链接了

常见错误:

创建ftp用户之后,配置好了FTP的身份验证和FTP的认证规则,但是无法访问。

原因是“FTP”和“Anonymous”是保留字。不能创建包含这些名称的> IIS 管理器用户帐户。

注意事项:

之前FTP动态端口需要开放1024-65535,但由于现有受支持的Windows操作系统动态端口范围有调整为49152-65535

Windows上FTP搭建及主被动传输模式测试-腾讯云开发者社区-腾讯云

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值