AMI 유형을 사용하여 AWS EC2 인스턴스를 생성했습니다 Amazon Linux AMI 2018.03.0.20190514 x86_64 HVM
.
인스턴스를 시작한 후 소프트웨어가 잘못된 IP 주소를 인쇄합니다. 명령을 실행하려고 했을 때 hostname -i
명령이 반환되었습니다 hostname: Unknown host
.
명령 hostname
자체는 올바른 호스트 이름을 반환하며 명령 에 올바른 IP 주소가 있는 것으로 ifconfig
보입니다 .eth0
우리의 /etc/hosts
파일은 다음과 같습니다:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost6 localhost6.localdomain6
우리는 결국 다음을 포함하도록 변경했습니다.
<ip address> localhost <hostname>
::1 localhost6 localhost6.localdomain6
그러면 IP 주소가 hostname -i
반환됩니다. 하지만 /etc/hosts
정확히 동일한 AMI 유형을 실행하는 다른 팀의 EC2 인스턴스와 해당 /etc/hosts
파일에 다음이 포함되어 있으므로 이를 변경할 필요가 없습니다.
127.0.0.1 localhost localhost.localdomain
해당 인스턴스에서 실행하면 올바른 IP 주소가 반환되며 파일을 hostname -i
편집할 필요가 없는 것 같습니다 ./etc/hosts
인스턴스가 hostname -i
반환되는 이유는 무엇입니까 ?Unknown host
답변1
hostname -i
DNS 확인을 사용하여 IP를 얻으세요. 이 오류가 발생하면 컴퓨터의 호스트 이름이 올바르게 구성되지 않았음을 의미합니다. 기본적으로 컴퓨터는 VPC의 DHCP 서비스에서 호스트 이름과 프라이빗 IP 주소를 얻습니다. Amazon Linux에서 기본 설정으로 되돌리려면 다음을 확인하십시오.
- 귀하의
/etc/sysconfig/network
모습은 다음과 같아야 합니다(이것이 귀하의 문제일 수 있습니다):
NETWORKING=yes
HOSTNAME=localhost.localdomain
NOZEROCONF=yes
- 당신은
/etc/hosts
다음과 같아야합니다 :
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost6 localhost6.localdomain6
이러한 변경 사항을 적용하려면 서버를 다시 시작해야 합니다. 사용자 정의 호스트 이름을 사용하는 경우 인스턴스에 대한 정적 호스트 이름을 설정해야 하며, 이는 다음과 같이 수행할 수 있습니다(도메인이 "example.com"이고 머신의 호스트가 "server"라고 가정).
- 당신은
/etc/sysconfig/network
다음과 같아야합니다 :
NETWORKING=yes
HOSTNAME=server.example.com
NOZEROCONF=yes
- 당신은
/etc/hosts
다음과 같아야합니다 :
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost6 localhost6.localdomain6
<instance-private-ip> server server.example.com
서버를 다시 시작했는지 확인하고 명령을 실행할 때 hostname
해당 내용이 인쇄되어야 하며 server.example.com
명령을 실행할 때 개인 IP를 얻어야 합니다 hostname -i
.
DHCP와 DHCP가 VPC에서 작동하는 방식에 대한 자세한 내용은 다음을 참조하세요.이 문서.