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

为何PowerShell的Invoke-RestMethod请求localhost耗时过长?

解决思路

1. 调整hosts文件解析顺序

打开C:\Windows\System32\drivers\etc\hosts文件,确认127.0.0.1 localhost条目位于::1 localhost(IPv6)条目之前。如果IPv6条目在前,PowerShell会优先尝试IPv6解析,失败后再 fallback 到IPv4,这会产生明显延迟。调整顺序后保存文件即可生效。

2. 强制系统优先使用IPv4

通过修改网络协议的接口度量值,让系统优先选择IPv4:

Set-NetIPProtocol -Protocol IPv6 -InterfaceMetric 4294967295

若后续需要恢复IPv6优先级,执行:

Set-NetIPProtocol -Protocol IPv6 -InterfaceMetric 10

3. 在irm调用中指定IPv4解析

手动获取localhost对应的IPv4地址,再拼接URL发起请求,跳过系统自动解析的步骤:

$ipv4Addr = [System.Net.Dns]::GetHostAddresses("localhost") | Where-Object { $_.AddressFamily -eq 'InterNetwork' } | Select-Object -First 1
irm "http://$($ipv4Addr.IPAddressToString):8080"

4. 重置DNS客户端缓存

重启DNS客户端服务,清除可能存在的无效解析缓存:

Restart-Service dnscache

内容的提问来源于stack exchange,提问作者Daniel Oliveira

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 21:20:51