무인 업그레이드는 내 컴퓨터를 호스트 이름 대신 "localhost"로 나타냅니다.

무인 업그레이드는 내 컴퓨터를 호스트 이름 대신 "localhost"로 나타냅니다.

내 컴퓨터 중 일부에서는 무인 업그레이드로 인해 재부팅해야 한다는 내용의 이메일이 다음과 같이 전송됩니다.

[reboot required] unattended-upgrades result for localhost: SUCCESS

다른 경우에는 localhost 대신 올바른 호스트 이름을 지정합니다. 호스트 이름을 올바르게 지정하려면 이를 어디에서 변경할 수 있습니까?

답변1

내가 아는 한 그것은 127.0.0.1or를 사용한다.::1/etc/hosts

다음과 같은 줄:

127.0.0.1  server.yourdomain.xx server localhost
::1 server.yourdomain.xx server localhost ip6-localhost ip6-loopback

server.yourdomain.xx
Tested in Debian 테스트를 통해 메시지를 출력 하도록 합니다.

답변2

/usr/bin/unattended-upgrade우리 시스템에서는 python3 스크립트가 호스트 이름을 알아내려고 시도하는 방식의 차이로 인해 발생하는 것 같습니다 .

일부 머신(Ubuntu 18.04)에서는 다음이 수행됩니다.

import os

#...

def host():
    # type: () -> str
    return os.uname()[1]

...최신 머신(Ubuntu 22.04)에서는 다음과 같이 작동합니다.

import socket

#...

def host():
    # type: () -> str
    return socket.getfqdn()

host()"localhost"그것은 단지 후자 버전을 반환합니다 .socket.getfqdn()매개변수 없이 반환.

스크립트 수정 사항 unattended-upgrade은 다음과 같습니다.소개하다버전 간1.3그리고1.4.

이 요청에는 이미 일부 토론이 포함되어 있습니다.관찰된 localhost회귀와 관련하여 작동하는 해결 방법도 암시합니다.

필수 호스트 이름을 다음과 같이 나열하는 대신 /etc/hosts:

127.0.0.1 localhost
127.0.0.1       my-hostname

...다음과 같이 나열하세요.

127.0.0.1 localhost
127.0.1.1       my-hostname

...지금 나에게 필요한 것은 이해하는 것뿐이다127.0.1.1대신 이 작업을 수행하는 데 사용하십시오 127.0.0.1...

https://www.debian.org/doc/manuals/debian-reference/ch05.en.html#_the_hostname_solution이는 솔루션의 정확성에 대한 추가적인 신뢰성을 제공하지만, 나에게는 여전히 관련된 메커니즘과 이론적 근거에 대한 충분한 맥락을 제공하지 않습니다.

(1)의 맨페이지에는 hostnameFQDN 섹션이 있습니다.이는 이름 확인의 복잡성을 파악하는 데 도움이 됩니다.

/etc/hostsFQDN을 설정하는 권장 방법은 DNS 또는 NIS를 사용하여 호스트 이름을 정규화된 이름의 별칭으로 만드는 것입니다. 예를 들어 호스트 이름이 " "인 경우 다음과 같은 ursula줄이 있을 수 있습니다./etc/hosts

127.0.1.1 ursula.example.com ursula

기술적으로 말하면 FQDN은 getaddrinfo(3)에서 반환된 호스트 이름의 이름 입니다 gethostname. DNS 도메인 이름은 첫 번째 점 다음 부분입니다.

/etc/host.conf따라서 이를 변경하는 방법은 파서의 구성(일반적으로 )에 따라 다릅니다 . 일반적으로 호스트 파일은 DNS 또는 NIS보다 먼저 확인되므로 변경이 가장 일반적입니다 /etc/hosts.

답변3

관련 파일의 내용을 변경합니다.etc/mailname:

데비안 정책에 따르면:

패키지가 로컬에서 생성된 나가는 뉴스 및 메일 메시지에 사용할 호스트 이름을 알아야 하는 경우 이 파일을 사용해야 합니다 /etc/mailname. 여기에는 사용자 이름과 컴퓨터에서 사용자의 이메일 주소를 나타내는 @(at) 기호 뒤의 부분(뒤에 개행 문자가 옴)이 포함됩니다.

일반적으로 이는 FQDN 이름(다른 시스템에서 확인된 서버의 이름입니다.

단순화를 위해 관련 패키지를 재구성하면 됩니다. 데비안 10의 기본 설정4번출구가방은 사실exim4-config:

dpkg-reconfigure -pcritical exim4-config

-pcritical질문이 없는지 확인하십시오. 이를 무시하거나 낮추어 -plow이러한 문제의 일부 또는 전부를 볼 수 있습니다.

OP가 사용하지 않았기 때문에4번출구하지만메일 전송 프로토콜, 이 경우 구성은 다음을 통해 트리거될 수 있습니다.

dpkg-reconfigure msmtp

이전에 이 작업을 수행한 적이 없다면 후속 질문을 받기 위해 첫 번째 질문( ) Create a system wide configuration file?에 "예"라고 대답하는 것이 중요합니다 .

와도 관련이 있는 것 같다4번출구, 구성 스크립트(설치 후 /var/lib/dpkg/info/msmtp.config)가 확인되지 않으므로 /etc/mailname권장 Debian 정책을 따르지 않습니다.

관련 정보