新闻详情

新闻详情

首页 / 资讯中心 / 详情

内网 Elasticsearch 域名 DNS 解析失败导致 ConnectionError 排查指南

发布时间:2026/9/2 6:24:15来源:尧图网络
内网 Elasticsearch 域名 DNS 解析失败导致 ConnectionError 排查指南
内网 Elasticsearch 域名 DNS 解析失败导致 ConnectionError 排查指南本文记录 Flask 后端调用 Elasticsearch 时出现NameResolutionError/ConnectionError的完整排查过程与解决方案。文中 IP、域名、账号均为示例占位请勿直接照搬生产环境配置。一、问题现象本地启动 Flask 开发服务后调用对比接口返回500控制台报错如下elastic_transport.ConnectionError: Connection error caused by: NameResolutionError( HTTPSConnection(hostelasticsearch.example.corp, port443): Failed to resolve elasticsearch.example.corp ([Errno 11001] getaddrinfo failed) )调用栈大致为app.py → main() → get_time_range() → fetch_cb_report_source() → remoteEs.search()表面看是「连接 ES 失败」但根因往往在DNS 解析阶段连接尚未建立。二、错误链路说明访问https://elasticsearch.example.corp:443举例并非真实 时程序通常分两步步骤动作失败时的表现1DNS 解析域名 → IPgetaddrinfo failed、NameResolutionError2TCP/HTTPS 连接超时、连接被拒绝、证书错误等本次错误发生在第 1 步系统查不到域名对应的 IP后续 HTTPS 请求无法发起Elasticsearch 客户端将其包装为ConnectionError。完整链路Flask 接口 ↓ Elasticsearch 客户端 (remoteEs.search) ↓ urllib3 解析域名 elasticsearch.example.corp ↓ 本机 DNS如 8.8.8.8返回域名不存在 ↓ socket.getaddrinfo 失败 (Windows: Errno 11001) ↓ NameResolutionError → ConnectionError → HTTP 500三、根因分析公网 DNS 为何解析不了内网域名3.1 两类 DNS 的分工公网 DNS如8.8.8.8、114.114.114.114维护互联网上的公开域名记录baidu.com、github.com等。企业内网 DNS如192.168.XX.XX举例并非真实维护公司内部域名例如 ES、数据库、内部 API 等。内网服务域名如elasticsearch.example.corp的 A 记录通常只配置在内网 DNS 上不会写入全球公网 DNS。3.2 典型企业网络模型┌────────────────────────────────────────────────────── ───┐ │ 开发者电脑 │ │ DNS 配置8.8.8.8公网优先 / 192.168.XX.XX内网举例并非真实 │ └──────────────────────────┬───────────────────────── ─────┘ │ 解析 elasticsearch.example.corp │ ┌───────────────┴───────────────┐ ▼ ▼ 公网 DNS (8.8.8.8) 内网 DNS (192.168.XX.XX) ❌ 无此记录 ✅ 192.168.XX.XX0 → Non-existent domain → 返回内网 IP若本机优先使用公网 DNS解析内网域名会直接失败与 ES 服务是否正常无关。3.3 常见原因归纳网卡 DNS 将公网 DNS 设为主、内网 DNS 未生效或排在后面未连接公司 VPN无法使用内网 DNS内网采用Split DNS内外网同一域名不同解析结果外网查不到内网记录ES 使用私有 IP 段如192.168.x.x、10.x.x.x本就不应出现在公网 DNS四、排查步骤4.1 确认是否为 DNS 问题Windows# 使用当前系统 DNSnslookup elasticsearch.example.corp# 指定公网 DNS 测试nslookup elasticsearch.example.corp 8.8.8.8# 指定内网 DNS 测试向网管或同事确认内网 DNS 地址nslookup elasticsearch.example.corp 192.168.XX.XX预期对比测试方式典型结果公网 DNSNon-existent domain/ 找不到内网 DNS返回内网 IP如192.168.XX.XX0若内网 DNS 能解析、公网不能即可确认是DNS 选型问题而非代码逻辑错误。4.2 查看本机 DNS 配置# Windowsipconfig/all# 或 PowerShellGet-DnsClientServerAddress-AddressFamily IPv4关注哪块网卡、DNS 顺序、是否存在VPN 虚拟网卡覆盖 DNS。4.3 绕过 DNS验证 ES 服务本身在已知内网 IP 的前提下由内网 DNS 解析得到勿随意猜测测试连通性# 测试 443 端口需替换为实际内网 IP示例勿用于生产curl-k https://192.168.XX.XX0或使用 Pythonfromelasticsearch8importElasticsearch esElasticsearch(https://用户名:密码192.168.XX.XX0,verify_certsFalse,ssl_show_warnFalse,request_timeout10,)print(es.info())若直连 IP 成功、域名失败进一步证明问题在 DNS不在 ES 集群或业务代码。4.4 查看代码中的 ES 地址业务代码中 ES 客户端常类似fromelasticsearch8importElasticsearch remoteEsElasticsearch(https://用户名:密码elasticsearch.example.corp,verify_certsFalse,ssl_show_warnFalse,request_timeout100000,)域名写死在代码里时本机必须能解析该域名否则所有remoteEs.search()都会在连接前失败。五、解决方案按推荐顺序方案 A调整 DNS推荐长期有效将公司内网 DNS设为主 DNS公网 DNS 作备用。Windows 图形界面控制面板 → 网络和 Internet → 网络连接右键当前网卡 → 属性 → Internet 协议版本 4 (TCP/IPv4)首选 DNS192.168.XX.XX示例以 IT 提供为准备用 DNS8.8.8.8效果内网域名走内网 DNS 解析公网域名仍可正常访问。适用长期在公司内网或稳定 VPN 环境开发。方案 B修改 hosts 文件临时/个人开发在无法立即改 DNS 时可在本机 hosts 中增加静态映射文件路径WindowsC:\Windows\System32\drivers\etc\hosts示例内容需管理员权限编辑192.168.XX.XX0 elasticsearch.example.corp特点项目说明作用范围仅本机影响范围仅该域名生效时间一般立即生效建议重启相关进程维护成本ES IP 变更需手动更新适用快速 unblock 本地开发不建议作为团队统一方案。方案 C连接 VPN在家或外网办公时先连公司 VPN确保能路由到 ES 所在内网网段DNS 流量走 VPN 下发的内网 DNS未连 VPN 时即使 hosts/DNS 配好也可能因路由不可达仍连不上。方案 D环境变量覆盖 ES 地址可选需改代码在data_search.py等模块中支持环境变量便于本地调试importosfromelasticsearch8importElasticsearch _DEFAULT_ES_URLhttps://用户名:密码elasticsearch.example.corpES_URLos.environ.get(ELASTICSEARCH_URL,_DEFAULT_ES_URL)remoteEsElasticsearch(ES_URL,verify_certsFalse,ssl_show_warnFalse,request_timeout100000,)本地临时指定 IP仍须在 VPN/内网可达setELASTICSEARCH_URLhttps://用户名:密码192.168.XX.XX0 python app.py注意不要把含密码的 URL 提交到 Git生产环境用配置中心或密钥管理。六、hosts 方案的影响说明修改 hosts不会修改公司服务器也不会影响其他同事电脑。维度影响作用域仅当前电脑域名仅 hosts 中列出的域名程序所有访问该域名的程序Flask、脚本、curl 等撤销删除对应行即可恢复副作用通常无IP 变更时需同步更新七、如何区分「DNS 问题」与「其他连接问题」错误信息可能原因getaddrinfo failed/NameResolutionErrorDNS 解析失败 → 优先查 DNS / hosts / VPNConnection refused有 IP 但端口未监听或防火墙拦截Connection timed out网络不通、未连 VPN、路由问题401 UnauthorizedDNS 与网络正常账号密码或权限问题SSL certificate verify failed证书问题与 DNS 无关本次案例属于第一类域名都解析不到谈不上连 ES。八、总结ConnectionError 不一定是 ES 挂了要先看是否是NameResolutionError。公网 DNS 不包含企业内网域名记录内网 ES 域名只能由内网 DNS或 hosts解析。排查顺序nslookup 对比公网/内网 DNS → ipconfig 看 DNS 顺序 → 直连 IP 验证 ES → 再改 DNS / hosts / VPN。长期建议内网 DNS 优先临时开发可用 hosts外网必须 VPN。代码中的 ES 域名是内网地址时开发机网络/DNS 必须与生产访问路径一致否则本地必现 ConnectionError。九、附录一键自检脚本Python将ES_HOST替换为你的内网 ES 域名示例域名非真实地址importsocket ES_HOSTelasticsearch.example.corpES_PORT443print( 1. 系统 DNS 解析 )try:ipsocket.gethostbyname(ES_HOST)print(fOK:{ES_HOST}-{ip})exceptsocket.gaierrorase:print(fFAIL:{e})print(→ 检查 DNS / hosts / VPN)print(\n 2. 端口探测需已知 IP 或解析成功 )try:ipsocket.gethostbyname(ES_HOST)socksocket.create_connection((ip,ES_PORT),timeout5)sock.close()print(fOK:{ip}:{ES_PORT}可达)exceptExceptionase:print(fFAIL:{e})声明本文为个人技术总结所有示例代码均为虚构教学模型与任何真实业务系统、公司项目无关。核心目的是分享 多口径查询怎么拆模块。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

AI图像超分辨率本地部署指南:从环境配置到批量处理实战 2026/9/2 7:21:24

AI图像超分辨率本地部署指南:从环境配置到批量处理实战

这次我们来看一个名为“靠近点……再靠近点……”的项目。从标题来看,这很可能是一个与图像处理、超分辨率或细节增强相关的工具或模型。这类项目通常致力于解决一个核心痛点:如何在不损失质量的前提下,将低分辨率、模糊或细节缺失的图像/视频…

阅读更多 →
基于YOLOv8的考古文物识别系统:从数据标注到桌面应用全流程实践 2026/9/2 7:21:24

基于YOLOv8的考古文物识别系统:从数据标注到桌面应用全流程实践

简介:本资源是一套面向计算机、人工智能及相关专业在校生与初学者的考古文物目标检测实践项目,基于YOLOv8框架构建端到端识别系统,解决文物图像中多类别器物(如陶器、青铜器、玉器等)的自动定位与分类问题,…

阅读更多 →
Python实现微电网两阶段鲁棒优化:CCG算法详解与工程实践 2026/9/2 7:21:24

Python实现微电网两阶段鲁棒优化:CCG算法详解与工程实践

简介:本资源是一套面向计算机及相关专业(如人工智能、数据科学、电子信息、物联网等)本科生与初阶研究者的微电网优化调度实战代码包,聚焦两阶段鲁棒优化这一前沿经济调度方法,完整复现从建模、分解到求解的全流程&…

阅读更多 →
YOLOv8电梯开关状态人员进出检测:从数据集解析到模型训练部署全流程 2026/9/2 7:21:24

YOLOv8电梯开关状态人员进出检测:从数据集解析到模型训练部署全流程

简介:本资源是面向智能楼宇、电梯安全监控与计算机视觉初学者的高质量目标检测数据集,聚焦电梯开关状态及人员进出场景识别任务。数据集共2220张真实场景图像,涵盖4类关键状态:电梯关闭、轿厢内有人、轿厢空载、电梯开启&#xff…

阅读更多 →
基于Fo-Dicom的MPPS与MWL服务可视化工具开发实践 2026/9/2 7:21:24

基于Fo-Dicom的MPPS与MWL服务可视化工具开发实践

简介:本资源是一个基于Fo-Dicom开源库开发的C#可视化DICOM服务程序,面向医学影像系统开发者、PACS工程师及放射科IT支持人员,用于直观实现与调试MPPS(设备执行步骤)和MWL(模态工作列表)两类关键…

阅读更多 →
从点灯到FOC:嵌入式开发者如何突破技术瓶颈实现高薪进阶 2026/9/2 7:18:23

从点灯到FOC:嵌入式开发者如何突破技术瓶颈实现高薪进阶

这次我们来看一个关于嵌入式开发领域职业发展路径的讨论,核心围绕“FOC(Field-Oriented Control,磁场定向控制)”技术的学习价值与“点灯”这类基础技能练习的对比展开。这个话题源于网络上一个引发热议的观点:有同学因…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞