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

浏览器与Postman可访问服务资源,cURL却无法解析主机

问题场景

Postman发起请求可正常响应,响应信息如下:

Hostname: 4534319174a2
GET / HTTP/1.1
Host: test.docker.localhost
User-Agent: PostmanRuntime/7.29.0
Accept: */*
Accept-Encoding: gzip, deflate, br
Postman-Token: 4a75ed35-fc23-4061-8f42-8abc32ba33b6
X-Forwarded-Host: test.docker.localhost
X-Forwarded-Port: 80
X-Forwarded-Proto: http
X-Forwarded-Server: 891f07ca9b9c

将该请求导出为cURL命令:

curl --location --request GET 'test.docker.localhost'

执行此命令时失败,报错:

curl --location --request GET 'test.docker.localhost'
curl: (6) Could not resolve host: test.docker.localhost

同时可通过浏览器正常访问test.docker.localhost,仅cURL无法访问该资源,需排查问题原因。

排查步骤
  • 检查curl的DNS解析细节
    执行curl -v test.docker.localhost查看完整的DNS解析日志,确认curl使用的DNS服务器是否与浏览器一致。若怀疑DNS配置问题,可手动指定公共DNS测试:

    curl --dns-servers 8.8.8.8 test.docker.localhost
    

    若此命令能正常访问,说明当前系统DNS或curl的DNS配置存在异常。

  • 验证本地hosts文件与DNS缓存
    查看本地hosts文件(Windows路径:C:\Windows\System32\drivers\etc\hosts;Linux/macOS路径:/etc/hosts),确认是否存在test.docker.localhost的IP映射条目。
    若hosts有配置但curl无法解析,尝试刷新DNS缓存:

    • Windows:ipconfig /flushdns
    • Linux:resolvectl flush-caches(或systemctl restart nscd,依发行版而定)
    • macOS:dscacheutil -flushcache
  • 检查curl的代理设置
    查看系统是否配置了代理环境变量:

    • Linux/macOS:echo $http_proxy $https_proxy
    • Windows:echo %http_proxy% %https_proxy%
      若存在代理配置,可临时禁用代理测试:
    curl --noproxy "*" test.docker.localhost
    
  • 确认curl版本与运行环境
    执行curl --version查看版本,部分旧版本curl对.localhost域名的解析支持可能存在缺陷,可尝试升级到最新稳定版。
    同时确认Postman与curl是否在同一环境运行(比如Postman在Windows主机,curl在WSL子系统),跨环境下hosts配置、网络栈不共享,会导致解析差异。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 19:54:28