You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置防火墙端口与被动模式后,Windows PowerShell FTP连接异常求助

解决PowerShell FTP连接的150 opening ascii mode data connection问题

针对你遇到的PowerShell连接FTP失败的情况,可从以下几个方向排查:

  • 强制指定被动模式:
    原生PowerShell的ftp命令行工具默认可能未启用被动模式(即使系统全局配置是被动)。在执行LIST命令前,先输入passive命令切换到被动模式。如果是用批处理脚本,可在脚本中加入该命令,示例脚本:

    open 192.XXX.XXX.XXX
    username
    password
    passive
    dir
    quit
    

    用ftp -s:ftp_script.txt执行脚本。

  • 切换传输模式:
    错误提示提到ASCII模式,部分服务器或网络环境对ASCII模式的数据连接兼容性较差。尝试切换到二进制模式,在脚本中加入binary命令后再执行文件列表或传输操作。

  • 检查客户端防火墙出站规则:
    服务器已开放被动模式所需端口,但客户端防火墙可能限制了出站的1024-65535端口(被动模式下客户端会随机开启这些端口接收数据)。确认客户端防火墙允许FTP相关的出站流量,或直接开放该端口范围的出站权限。

  • 查看服务器FTP日志:
    150 opening ascii mode data connection是服务器的正常响应,后续可能存在数据连接失败的情况(比如425错误)。查看服务器端的FTP日志,获取完整的错误信息,定位具体故障点。

  • 验证PowerShell的FTP实现方式:
    如果你用的是.NET类(如FtpWebRequest),需确保显式设置被动模式:

    $ftpRequest = [System.Net.FtpWebRequest]::Create("ftp://192.XXX.XXX.XXX/")
    $ftpRequest.Method = [System.Net.WebRequestMethods+Ftp]::ListDirectory
    $ftpRequest.Credentials = New-Object System.Net.NetworkCredential("username", "password")
    $ftpRequest.EnablePassive = $true # 强制开启被动模式
    

内容的提问来源于stack exchange,提问作者Hsinhsin Hung

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 07:07:13