我的服务器操作系统:Amazon Linux
我正在尝试设置 ftp。我有:
安装 vsftpd
打开端口20-21
打开端口 1024 - 1048
基本上,我遵循了每一个这些脚步
- 启动vsftpd服务(状态显示[ok])
我使用 filezilla 作为我的 ftp 客户端。
这是我的设置/配置:
主机:ec2-XX-XX-XXX-XX.compute-1.amazonaws.com
端口:-(空白,但我已经尝试过 20 和 21)
服务器类型:FTP-文件传输协议
登录类型: 正常
用户名:(尝试过 root 和 ec2-user)
传输模式:尝试过被动和主动
我总是出现这个错误:
Status: Waiting to retry...
Status: Resolving address of ec2-XX-XX-XXX-XX.compute-1.amazonaws.com
Status: Connecting to XX.XX.XXX.XX:21...
Error: Connection timed out
Error: Could not connect to server
我是否遗漏了任何配置/设置?
编辑
执行/sbin/iptables -L -n后
结果如下:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
答案1
您必须在 vsftpd 中启用被动模式,并使其监听您的实例的弹性 IP:
- pasv_enable=是
- pasv_min_port=1024
- pasv_max_port=1048
- 端口启用=是
- pasv_address=弹性 IP
另外,在服务器的安全组和 Linux 服务器上打开端口 1024-1048。别忘了端口 21 ;)
答案2
如果您只想在 EC2 实例和本地计算机之间传输文件,我认为您不需要安装 FTP 服务器。您可以使用 psftp 或 filezillia 以及您的私钥通过端口 22 安全地连接到您的 EC2 实例。此帖子有分步说明。http://lzw-programmingjourney.blogspot.com/2011/12/set-up-ftp-server-on-amazon-aws-ec2.html
答案3
从日志中可以清楚地看出端口 21 在某种程度上被阻塞了。
在服务器端,你需要检查 VSFTPD 是否正在监听所有 IP 地址,并使用命令检查
网络状态监测
之后,应该从所需的 IP 地址在 Amazon 云安全组中打开端口 21。
在启动与服务器的任何连接之前,尝试运行 NMAP 端口扫描以查看端口 21 是否从客户端实际打开。运行:
nmap -vv -P0(服务器IP地址或DNS)
答案4
我使用Filezilla登录,并按照以下步骤操作。
要使用 Filezilla 连接到正在运行的 Amazon EC2 实例:
编辑 -> 设置 -> 连接 -> SFTP 单击“添加密钥文件”
浏览到 .pem 文件的位置并选择它。
将出现一个消息框,询问您是否允许将文件转换为 ppk 格式。单击“是”,然后为文件命名并将其存储在某个位置。
如果新文件显示在密钥文件列表中,则继续下一步。如果没有,则单击“添加密钥文件...”并选择转换后的文件。
文件 -> 站点管理器
使用以下参数添加新站点:
主机:您的 ec2 实例的公共 DNS 名称
协议:SFTP
登录类型: 正常
用户: ec2-user
按下连接按钮
视频教程:点击这里