내 IP가 네트워크에 있는 IP 대신 127.0.0.1로 확인되는 이유는 무엇입니까?

내 IP가 네트워크에 있는 IP 대신 127.0.0.1로 확인되는 이유는 무엇입니까?

Linux 시스템에서 IP 확인이 어떻게 작동하는지 이해할 수 없습니다. 내 문제를 설명하기 위해 Windows와 Linux의 예를 보여드리겠습니다.

윈도우: Windows hosts파일이 비어 있습니다. 댓글만 포함되어 있습니다.

Python 셸에서 다음 명령을 실행합니다.

socket.gethostbyname(socket.gethostname())

192.168.10.105내 네트워크에 현재 IP 가 있습니다 . 내가 예상했던 대로.

리눅스: Linux에서의 모습은 다음과 같습니다 /etc/hosts.

127.0.0.1       localhost.localdomain           localhost

동일한 Python 명령을 사용하면 리소스를 일시적으로 사용할 수 없다는 오류가 발생합니다. 나는 이것이 내 현재 호스트 이름이 부족한 것과 관련이 있다고 생각합니다 /etc/hosts. 수동으로 추가하면

127.0.0.1       localhost.localdomain           localhost    MyHostName

python 명령이 반환됩니다 127.0.0.1. 이것은 여전히 ​​내가 예상한 것과 다릅니다. 하지만 IP와 호스트 이름을 파일에 추가할 수 있습니다.

127.0.0.1       localhost.localdomain           localhost
192.168.10.115  MyHostName 

그러나 이것은 확실히 올바른 접근 방식이 아닙니다. DHCP를 사용하면 이 IP가 변경됩니다.

Linux에서 Windows와 동일한 결과를 얻으려면 어떻게 해야 합니까? 내 구성(또는 내 생각)에 어떤 문제가 있나요?

답변1

네트워크 카드에 IP를 할당할 때 실행할 지침이 포함된 파일(/etc/udhcpc/default.script)을 편집할 수 있습니다.

변경할 수 있는 사항은 다음과 같습니다.갱신 |ifconfig 지시문 아래에 섹션을 추가합니다.

echo "127.0.0.1 localhost.localdomain localhost"> /etc/hosts
echo "$i myHostName" > /etc/hosts

관련 정보