Ubuntu Server 12.04( amd64
) 시스템이 있는데 변경하면 /etc/hosts
재부팅 후에도 변경 사항이 적용되지 않습니다. 이것을 테스트하기 위해 사용하고 있지만 /usr/bin/host
다른 프로그램에서도 인식하지 못하는 것 같습니다.
이것은 서버이며 아직 설치 nscd
되지 않았습니다 dnsmasq
. 또한 파일에는 /etc/nsswitch.conf
다음 줄이 포함되어 있습니다.
hosts: files dns
그래서 나는 그것이 효과가 있기를 바랍니다. 또한 mtime
편집으로 인해 변경된 사항이 있는지 파일을 확인하고 service networking restart
(매우 어렵기는 하지만) 실행도 시도했습니다 resolvconf -u
.
모든 명령은 root
필요에 따라 실행됩니다. 컴퓨터에는 /etc/network/interfaces
Network Manager(또한 설치되지 않음)를 통하지 않고 수동으로 구성된 네트워크가 있습니다.
기본적으로 내가 달성하고 싶은 것은 일부 호스트의 IP를 조작할 수 있는 것입니다. 그 이유는 우리 네트워크 내부에서는 라우팅되지 않은 IP를 얻었지만 HTTPS를 통해 서비스의 외부 IP를 사용할 수 있기 때문입니다.
내가 무엇을 놓치고 있나요?
노트:로컬로 실행되는 DNS 서버가 없으며 nameserver
의 줄 /etc/resolv.conf
(및 의 해당 줄 interfaces
)은 잘못된 IP를 제공하는 DNS 서버를 가리킵니다.
또한 참고하십시오:온라인에서 검색하여 "유사한 질문"을 읽었지만 제 사건이 다루어지지 않은 것 같습니다.
/etc/host.conf
예:
# The "order" line is only used by old versions of the C library.
order hosts,bind
multi on
답변1
호스트 명령은 호스트 파일을 확인하지 않습니다. 맨페이지에서:
host is a simple utility for performing DNS lookups.
호스트 파일을 고려하면서 조회를 테스트하려면 ping 또는 getent를 사용하십시오.
$ tail -1 /etc/hosts
127.0.0.1 google.com
$ ping -c1 google.com | head -1
PING google.com (127.0.0.1) 56(84) bytes of data.
$ getent ahosts google.com
127.0.0.1 STREAM google.com
127.0.0.1 DGRAM
127.0.0.1 RAW
답변2
이 host
유틸리티는 DNS 조회에 사용됩니다. 호스트 이름을 확인하는 호스트 파일이나 DNS가 아닌 방법은 신경 쓰지 않습니다. 정상적인 상황(nsswitch.conf 고려)에서 시스템이 호스트 이름을 어떻게 확인하는지 확인하려면 getent
이 host
유틸리티를 DNS 테스트용으로 예약해야 합니다. 예는 다음과 같습니다.
$ host foobar.com
foobar.com has address 69.89.31.56
foobar.com mail is handled by 0 foobar.com.
$ getent hosts foobar.com
10.188.14.16 foobar.com
답변3
dig
, 쿼리 host
등 의 프로그램nslookup
도메인 명 시스템오직. /etc/hosts
NIS 또는 LDAP 와 같은 다른 호스트 이름 소스를 쿼리하지 않습니다 .
대부분의 설정에서 호스트 이름을 로컬로 성공적으로 추가하는 가장 쉬운 방법은 DNS 서버를 실행하는 것입니다. 그럼에도 불구하고 DNS 캐시를 실행하는 것은 성능 측면에서 좋은 생각입니다. 즉, 로컬에서 실행되는 DNS 서버가 없다는 사실은 해결해야 할 문제이지 해결해야 할 문제가 아닙니다.
DNS널리 사용되며, 크기가 작고(많은 Linux 기반 라우터에서 사용됨) 구성이 쉽습니다. Dnsmasq는 DNS 요청을 캐시하고 호스트 파일에서 추가 이름을 제공할 수 있습니다. 소규모 네트워크에 적합한 기본 DHCP 서버도 제공하는데, 해당 부분을 꼭 사용할 필요는 없습니다. 격리된 머신이 있는 경우 해당 머신에서 Dnsmasq를 실행하세요. 로컬 네트워크가 있는 경우 라우터에서 Dnsmasq(또는 이미 가지고 있는 다른 동등한 소프트웨어)를 실행하세요. 바라보다호스트 이름을 사용하여 LAN에서 컴퓨터에 액세스하는 방법Dnsmasq 설정 방법을 포함하여 자세히 알아보세요.