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

관련 정보