修改AWS EC2 Windows防火墙设置

时间:2013-01-07 09:08:48

标签: ftp amazon-web-services amazon-ec2 ftp-client windows-firewall

我正在尝试在Windows AWS EC2实例上执行FTP脚本以下载文件,但由于防火墙设置而阻止了入站连接。任何人都可以建议应该允许入站连接的适当防火墙配置。

我害怕玩这些设置,因为我曾经点击过重置防火墙设置而我丢失了该实例的远程登录访问权限,我不得不终止它并创建一个新设置。

谢谢。

@echo off
echo user  username > ftpcmd.dat
echo password >> ftpcmd.dat
echo binary >>ftpcmd.dat
echo cd /Outbound/Archive >>ftpcmd.dat
echo prompt n >>ftpcmd.dat
echo get DATA_FEED.xml C:\Users\user\Desktop\Test.xml >> ftpcmd.dat
echo quit>> ftpcmd.dat
ftp -n -s:ftpcmd.dat ftp.server.com
del ftpcmd.dat

Below is a screen shot of Ec2 firewall settings

2 个答案:

答案 0 :(得分:1)

简单解决方案:

尝试添加

echo quote pasv >> ftpcmd.dat

在发送binary之前。

<强>解释

PASV设置与passive mode的连接,该连接不需要来自服务器的任何传入连接。这就像一个简单的客户端 - 服务器连接。

在活动模式下,客户端连接到服务器(在您的情况下工作,登录成功),然后告诉服务器它自己的IP地址和随机端口,通常高于1023。 然后,服务器连接到您的客户端以传输数据。 这是因为您在防火墙后面而失败。

答案 1 :(得分:1)

AWS文档有 -

文件传输协议(FTP)具有PORT命令,客户端通过该命令将其地址发送回服务器。然后,服务器连接到该地址的客户端以发送文件数据。如果客户端查找其自己的内部地址并将其发送到服务器,则连接将失败。在这种特定情况下,该问题有两种解决方案。首先,配置客户端以发送其公共IP地址。其次,客户端可以使用“被动FTP”,它只与服务器建立连接,而不是从服务器连接到客户端。通常,在发送到外部服务器的数据中编码本地地址和端口号的应用程序可能存在NAT问题。必须始终注意发送公共地址,而不是内部地址。 我们建议使用被动模式,除非FTP服务器不支持。

我没有尝试公开我的AWS实例的公共IP,我们知道FTP.EXE不支持被动模式,所以我使用了NcFTP,我能够下载该文件。