nc 命令无法查找 DNS 名称

nc 命令无法查找 DNS 名称

我有很多客户需要检查远程服务器上的端口是否打开。我使用 nc 命令来完成这项工作,但是它总是给出 DNS 查找失败,但我可以使用 dig 或 nslookup 成功找到 DNS 记录。

有人知道原因吗?谢谢!

[root@client ~]# nc  -vzw5  d1.myserver.com 443 
d1.myserver.com: forward host lookup failed: Unknown host : No such file or directory
[root@ndc-nz1-1 ~]# nslookup  d1.myserver.com
Server:         192.168.1.155
Address:        192.168.1.155#53

Name:   d1.myserver.com
Address: 192.168.2.25

[root@client ~]# dig d1.myserver.com

; <<>> DiG 9.2.4 <<>> d1.myserver.com
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11270
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;d1.myserver.com. IN  A

;; ANSWER SECTION:
d1.myserver.com. 7200 IN A    192.168.2.25

;; Query time: 1 msec
;; SERVER: 192.168.1.155#53(192.168.1.155)
;; WHEN: Tue Jul 21 21:13:21 2015
;; MSG SIZE  rcvd: 67

nsswitch.conf 上的文件信息

[root@client ~]# cat /etc/nsswitch.conf |grep 
hosts: files dns 
[root@client ~]# ll /etc/nsswitch.conf 
-rw-r--r-- 1 root root 1658 Apr 1 2008 /etc/nsswitch.conf

resolv.conf 上的文件信息

[root@client ~]# cat /etc/resolv.conf
nameserver 192.168.1.155
options timeout:1

尝试其他命令:

[root@client ~]# ping d1.myserver.com
ping: unknown host d1.myserver.com
[root@client ~]# wget d1.myserver.com
--01:47:57--  http://d1.myserver.com/
           => `index.html'
Resolving d1.myserver.com... 192.168.2.25
Connecting to d1.myserver.com|192.168.2.25|:80... connected.

答案1

查看/etc/nsswitch.conf 的内容。您可能尚未将系统配置为使用 DNS 来解析主机名。 nslookup 和 dig 不会费心查看系统是否配置为使用 DNS 来解析主机名。不管怎样,他们都使用 DNS。 (尽管如果您不指定服务器,他们将使用 /etc/resolv.conf 来查找要使用的 DNS 服务器。)

你想在主机行中看到 DNS,比如hosts: files dns

相关内容