Ubuntu下C程序及nc工具无法解析自定义DNS服务器中TESTHOSTNAME的问题排查求助
Ubuntu下C程序及nc工具无法解析自定义DNS服务器中TESTHOSTNAME的问题排查求助
大家好,我最近遇到一个DNS解析的问题,折腾了好久都没解决,想请教下各位:
我正在尝试用C语言写一个简单的TCP/IP连接程序,核心是要通过主机名连接目标机器,但在Ubuntu上完全搞不定DNS解析这一步。
先说说在Windows上的成功情况,作为对比:
- 我在Windows Server 2022(IP地址192.168.1.189)上搭建了一个简易DNS服务器,把自定义主机名
TESTHOSTNAME指向了目标机器的IP 192.168.1.157 - 在另一台Windows 10电脑上,把DNS服务器地址设为192.168.1.189,然后用Putty建立Raw连接到
TESTHOSTNAME,发送的数据能正常被目标机器接收,整个流程完全没问题
但到了Ubuntu这边就卡壳了:
- 我已经把Ubuntu的DNS服务器地址设置为192.168.1.189,也能正常ping通这个DNS服务器
- 可是当我运行命令
nc TESTHOSTNAME 10000时,直接报错:nc: getaddrinfo for host "TESTHOSTNAME" port 10000: Name or service not known - 我已经确认Ubuntu客户端、Windows DNS服务器以及
TESTHOSTNAME对应的机器,所有防火墙都已经关闭了
另外我还查了Windows服务器的日志:事件查看器里完全看不到任何有用的日志(不管是解析成功还是失败的记录都没有),我已经在Windows DNS服务器上开启了调试日志,但……
有没有大佬能帮我分析下可能的原因,或者给点排查的方向?
备注:内容来源于stack exchange,提问作者Koops128




