使用Filezilla SFTP连接Amazon EC2时遇连接拒绝问题求助
解决FileZilla连接Windows EC2时「Connection refused」的问题
Hey,我刚看完你的问题,刚好之前帮朋友踩过Windows EC2连FileZilla的坑,给你一步步捋清楚——核心问题其实是Windows Server 2016默认没装SFTP服务!
先搞懂关键区别:SFTP vs FTP
- SFTP是依托SSH服务运行的,不需要单独安装软件;而普通FTP必须搭配专门的FTP服务器(比如你提到的XAMPP里的FileZilla Server)才能用。你之前两种连接都失败,本质是对应服务都没跑起来。
先解决SFTP连接的问题(推荐用SFTP,比FTP安全)
1. 给Windows EC2安装OpenSSH Server
Windows Server 2016默认不带SSH/SFTP服务,这是你连不上的核心原因!远程登进EC2后这么操作:
- 打开「服务器管理器」→ 点击「添加角色和功能」
- 一路下一步到「功能」页面,找到「OpenSSH Server」勾选上,跟着向导完成安装
- 安装完成后,按Win+R输入
services.msc打开服务列表,找到「OpenSSH SSH Server」,把启动类型改成「自动」,然后点击「启动」
2. 确认安全组端口配置是否正确
SFTP和SSH共用22端口,你的安全组入站规则要这么设置:
- 类型选择「SSH」
- 端口范围填
22 - 源可以设成你本地电脑的公网IP(更安全),测试阶段也可以暂时设为
0.0.0.0/0(别长期这么用)
别搞混端口!SFTP用22,FTP默认用21,搞混了肯定连不上
3. 正确配置FileZilla的SFTP连接
- 打开FileZilla,点击「文件」→「站点管理器」→「新建站点」
- 协议选择「SFTP - SSH File Transfer Protocol」
- 主机填EC2的公网IP或者弹性IP(绑弹性IP的话,实例重启后IP不会变)
- 登录类型选「密钥文件」
- 用户名填你创建EC2实例时设置的管理员账号(比如默认的
Administrator) - 密钥文件选择你用PuttyGen转换好的
.ppk文件(转换步骤:打开PuttyGen,点击「加载」选择你的.pem文件,然后「保存私钥」为.ppk,别设置密码) - 点击「连接」测试,应该就能成功了
如果非要用普通FTP连接的话
那确实需要在EC2上运行FTP服务器,比如XAMPP里的FileZilla Server:
- 远程登进EC2,安装XAMPP,然后启动里面的FileZilla Server
- 在FileZilla Server里设置好用户、权限,以及端口(默认是21)
- 安全组要添加两条入站规则:一条是FTP的21端口,另一条如果用被动模式的话,要开一个端口范围(比如
10000-10100),还要在FileZilla Server里把被动端口范围设成一致的 - 本地FileZilla连接时,协议选「FTP - File Transfer Protocol」,登录类型选「正常」,输入你在服务器端设置的用户名和密码即可
额外排查小技巧
- 你已经关了防火墙,但可以再确认下EC2的Windows防火墙有没有彻底关闭,或者有没有其他安全软件拦截连接
- 先用Putty测试SSH连接:如果Putty能连上EC2,说明SSH服务和安全组都没问题,那FileZilla的SFTP肯定能连上;如果Putty连不上,问题就出在SSH服务或者安全组配置上
- 确认EC2的公网IP有没有变化:如果没绑定弹性IP,实例重启后IP会改变,这时候要更新FileZilla里的主机地址
内容的提问来源于stack exchange,提问作者Elliott08
相关产品推荐
相关产品推荐

