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

如何查找PowerShell脚本与远程服务器通信的端口?实操场景咨询

如何确定代理服务器与远程服务器通信的文件复制端口

别着急,我帮你梳理几个实用的步骤来定位这个端口——毕竟通过代理中转时,本地的netstat可能抓不到跨节点的连接,得从代理端入手排查:

  • 先明确你的复制脚本用的底层协议
    不同的文件复制方式对应默认端口,先缩小排查范围:

    • 如果用Copy-Item走SMB协议,默认是445端口;
    • 如果是通过WinRM远程执行复制(比如Invoke-Command搭配复制逻辑),默认是5985(HTTP)或5986(HTTPS);
    • 要是用FTP,主动模式默认21(控制)/20(数据),被动模式会用随机端口;
    • SFTP/SCP的话默认是22端口。
      先搞清楚脚本依赖的协议,能少走很多弯路。
  • 在代理服务器上抓包分析(最准确的方法)
    代理是流量中转的核心节点,直接在这抓包能精准定位:

    1. 先在代理上用tracert 远程服务器IP/域名确认流量确实从代理指向目标服务器;
    2. 打开管理员权限的PowerShell,启动抓包:
      netsh trace start capture=yes protocol=any tracefile=C:\proxy_traffic.etl
      
    3. 运行你的文件复制脚本,等复制动作开始后,停止抓包:
      netsh trace stop
      
    4. 用Windows事件查看器打开生成的.etl文件,或者用tracelog工具解析,过滤远程服务器的IP,就能看到代理和它通信的具体端口了。
  • 用增强版的连接查看工具替代普通netstat
    普通netstat可能错过短连接,试试这些实时查看的方法:

    • 在复制脚本运行的实时,在代理上执行:
      netstat -ano | findstr "远程服务器IP"
      
      注意要在连接活跃的时候查,不然短连接断开后就看不到了;
    • 用PowerShell的Get-NetTCPConnection命令,更灵活地过滤:
      Get-NetTCPConnection -RemoteAddress "远程服务器IP" | Select-Object LocalPort, RemotePort, State
      
      这个能列出当前所有和目标IP的TCP连接,状态清晰。
  • 检查代理服务器的防火墙与代理软件配置
    代理要和远程通信,肯定得有对应的权限配置:

    1. 打开代理服务器的「Windows Defender防火墙高级设置」,查看出站规则,找允许和远程服务器通信的规则,里面会明确标注端口;
    2. 如果用了第三方代理软件(比如Squid、Nginx),直接去它的配置文件里找转发规则,里面会写明代理到远程的端口。
  • 直接测试代理到远程的端口连通性
    结合之前的协议猜测,在代理上用Test-NetConnection逐个验证:

    Test-NetConnection -ComputerName "远程服务器IP/域名" -Port 你怀疑的端口
    

    比如先测445、22、5985这些常见端口,返回TcpTestSucceeded: True的就是连通的端口,再结合脚本的协议就能确定目标端口。

内容的提问来源于stack exchange,提问作者Mitesh Agrawal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 17:52:49