호스트 이름을 변경 한 시스템이 있습니다. /etc/hosts
, /etc/sysconfig/network
및 hostname
명령으로 변경했습니다. hostname
는 올바른 축약 이름을 반환하고 hostname --fqdn
는 예상 FQDN을 반환하지만 hostname -A
는 이전 이름. 외부 DNS 캐시가 아닌지 확인하기 위해 컴퓨터의 IP 주소를 변경했습니다.
python을 열고 실행하면
import socket print(socket.gethostname()) print(socket.getfqdn())
둘 다 hostname -A
와 동일한 이전 호스트 이름 / fqdn을 반환합니다.
호스트 이름 매뉴얼 페이지에서 --fqdn
가 나타납니다. 짧은 이름과 도메인을 가져 와서 합칩니다.
FQDN (Fully Qualified Domain Name)을 표시합니다. FQDN은 짧은 호스트 이름과 DNS 도메인 이름. 호스트 조회에 바인드 또는 NIS를 사용하지 않는 한 / etc / hosts 파일에서 FQDN 및 DNS 도메인 이름 (FQDN의 일부)을 변경할 수 있습니다.
이 명령의 차이점은 무엇이며 이전 호스트 이름이 유지되는 이유를 어떻게 더 잘 해결할 수 있습니까?
댓글
- 특정 linux / unix 및 버전 식별은 어떻습니까?이 정보가 다른 곳에 상주하고 부팅시 설정되는 경우가 있습니다. e 다른 구성 파일에서 가져옵니다.
- Red Hat Enterprise Linux 6.4
답변
hostname
는 구성된 호스트 이름 또는 노드 이름을 반환합니다. 실제로는 짧은 이름 (대부분의 구성에서) 또는 긴 이름 (이 경우 일반적으로 FQDN) 일 수 있습니다. 짧은 이름은 hostname --short
로 지정됩니다.
hostname --fqdn
는 노드 이름 (uname
시스템 호출에서 반환 된대로, uname(2)
매뉴얼 페이지 참조).
hostname -A
는 모호하고 직관적이지 않습니다. 특히 이름과 설명 ( “모든 FQDN”)에도 불구하고 설계 상 표준 FQDN을 제공하지 않습니다. 따라서 사용하지 마십시오. 한 가지 이유는 시스템의 유효한 IP 주소를 놓치기 때문입니다. 127.0.1.1과 같이 FQDN이 /etc/hosts
파일에 연결될 수 있습니다 (현재는 Debian 및 Ubuntu에서 기본값 임).
방법은 IP 주소의 역방향 확인이 반드시 FQDN을 제공하지는 않습니다. 짧은 이름 일 수 있습니다.
파이썬 문제와 관련하여 버그 일 수 있습니다. 잘 모르겠습니다. 다음 Perl 스크립트를 사용해 보는 것이 좋습니다.
#!/usr/bin/env perl use strict; use POSIX; my $nodename = (POSIX::uname)[1]; print "Nodename: $nodename\n"; my @ghbn = gethostbyname $nodename; print "FQDN: $ghbn[0]\n"; $ghbn[0] !~ /\./ && $ghbn[1] =~ /(\S+\.\S+)/ and print "Fixed FQDN from aliases: $1\n";
댓글
- 호스트 이름 -A는 어디에서 정보를 얻습니까? 호스트 이름 -A가 올바른 이름을 표시 할 때까지 ' 수정할 수없는 시스템에 설치된 다른 소프트웨어에 문제가있었습니다.
- ps, 127.0.1.1 주소를 127.0.0.1로 수정하려고했지만 수정하려면 최소 6자가 필요합니다. 수정할 수 있습니다.
- @Rothgar
hostname -A
는 구성된 인터페이스를 살펴보고이를 역으로 해결합니다 (글쎄, 이것은 man 페이지에 제공된 정보입니다). 127.0.1.1은 내 대답에 올바른 IP 주소이며 127.0.0.1이 아닙니다. 사실 127.0 .1.1은 FQDN에 사용됩니다 (127.0.0.1 대신).hostname -A
문제의 원인 중 하나입니다. - @ vinc17 : I don ' 여기서 nodename은 상대적이라고 생각하지 않습니다. 주요 차이점은
hostname -f
는/etc/hosts
를 사용하는 반면hostname -A
DNS 조회를 사용합니다. 자세한 내용은 bugs.debian.org/cgi-bin/bugreport.cgi?bug=718393 - @ vinc17 : run
strace hostname -A
에서 어떻게되는지 확인하세요.