IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

一次DNS域名解析问题排查记录

博学无忧 2014-11-27 13:01:44 累计浏览 2,957 次
本机暂存

   玩客项目中通过http的方式调用了其他引擎的数据。昨天同事反应,调用数据出现问题。出现问题时,现象如下:

[hailong.xhl@s006130 logs]$curl "http://demo.tbsite.net:2088/bin/search?append=k"
[hailong.xhl@s006130 logs]$curl: (7) couldn't connect to host

   继续跟踪,发现连接的是一个实体机ip,而非vip。

connect(3, {sa_family=AF_INET, sin_port=htons(2088), sin_addr=inet_addr("10.234.12.108")}, 16) = -1 EINPROGRESS (Operation now in progress)
poll([{fd=3, events=POLLOUT}], 1, 300000) = 1 ([{fd=3, revents=POLLERR|POLLHUP}])
getsockopt(3, SOL_SOCKET, SO_ERROR, [8589934703], [4]) = 0
close(3)  

   这让我想起了之前安装的vipserver。vipserver是阿里自己开发的一个dns域名解析软件。查看了vipserver的日志,发现它的确把域名解析到了很多实体机ip上。

   为什么解析到实体机ip后就不能正常调用服务了呢?和对方pe沟通后得知,实体机监听的是2087端口,而vip监听的是2088端口。因此,在向实体机的2088端口发起连接请求时失败。

   另外还发现一个问题,就是同时安装vipserver的几台服务器,部分能正常解析到vip,部分解析到了实体机ip。开始很纳闷,后来发现是nscd搞的鬼。使用以下命令清除dns缓存后,所有的机器都解析到了实体机ip了。

sudo /usr/sbin/nscd -i hosts

   由于vipserver解析的ip有问题,暂时关闭了vipserver。待对方pe完成vipserver设置后,再启用。

同分类推荐文章

  1. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
  2. Go 实验特性详解 (2026-06-21 10:05:27)
  3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

查看更多 后端 文章 →

建议继续学习

  1. 浅析http协议、cookies和session机制、浏览器缓存 (累计阅读 17,446)
  2. 如何拿下简短的域名 (累计阅读 16,935)
  3. 从输入 URL 到页面加载完成的过程中都发生了什么事情? (累计阅读 15,933)
  4. libcurl的使用总结(二) (累计阅读 15,083)
  5. 使用python爬虫抓站的一些技巧总结:进阶篇 (累计阅读 13,302)
  6. 自建DNS以防止GFW干扰 (累计阅读 13,125)
  7. HTTP协议Keep-Alive模式详解 (累计阅读 12,105)
  8. 你必须了解的Session的本质 (累计阅读 11,442)
  9. 强制刷新本地 DNS 缓存记录 (累计阅读 10,918)
  10. curl 命令使用cookie (累计阅读 10,018)