Linux에서 호스트 이름을 어떻게 안정적으로 제어할 수 있습니까?

Linux에서 호스트 이름을 어떻게 안정적으로 제어할 수 있습니까?

DHCP AP 연결 중에 실제 호스트 이름을 확인하고 제어하려고 합니다.

/etc/hostname 파일을 변경하면 sudo가 중단됩니다.

Journalctl -u NetworkManager를 검사하면 Network Manager가 위 파일의 값으로 일관되게 설정되는 것을 볼 수 있습니다. Dmesg 연결 로그에는 호스트 이름이 언급되지 않습니다.

man NetworkManager.conf에 따르면 Nm은 구성 파일에서 연결별로 호스트 이름을 설정할 수 있도록 하는 호스트 이름 옵션을 포함했지만 이는 더 이상 사용되지 않습니다(어떤 이유로든 동일한 기능을 달성하는 더 확실한 방법이 있음을 암시함).

NetworkManager.conf 옵션과 마찬가지로 호스트 이름 옵션도 dhclient.conf에 나타납니다. 그러나 Network Manager는 dhclient.conf 항목에 관계없이 호스트 이름을 사용하여 /etc/hostname의 값으로 설정된 호스트 이름을 계속 표시합니다.

NetworkManager[9405]:[1595351700.9848] settings: hostname: using hostnamed
NetworkManager[9405]: <info>  [1595351700.9849] settings: hostname changed from (none) to "debian"

적어도 AP 연결 로그에서 호스트 이름을 스니핑하거나 검사할 수 있다면 이는 보안 기반으로 보입니다.

DHCP 협회에서는 실제로 어떤 가치를 전달하고 있으며, 이를 어떻게 쉽게 제어할 수 있습니까?

답변1

아마도 당신은 이 문제를 잘못 보고 있었을 것입니다. 하나의 호스트 이름만 원하는 경우 /etc/hostname에서 이를 변경할 수 있어야 하며 다른 모든 것은 이를 해결해야 합니다.

나는 호스트 이름을 변경한 후 새 호스트 이름을 찾을 수 없기 때문에 sudo가 때때로 불평하는 것을 발견했습니다. /etc/hosts에 호스트 이름을 추가했는데 문제가 해결되었습니다.

다음을 실행하여 HOSTNAME을 /etc/hosts에 추가할 수 있습니다 echo "127.0.0.1 HOSTNAME" >> /etc/hosts(필요한 경우 sudo를 잊지 마십시오). 그 후에는 sudo에 문제가 없었고 /etc/hostname의 호스트 이름은 dhclient 등과 같은 네트워킹에 사용됩니다.

문제를 해결하는 데 도움이 되기를 바랍니다.

답변2

답변이 정확했던 것 같습니다. 호스트 이름은 sudo를 중단하지 않고 호스트의 최상위 항목(127.0.0.1 호스트 이름 debian을 읽고 호스트 이름 [이름]으로 변경)으로 변경할 수 있습니다.

$ sudo journalctl -u NetworkManager | grep hostname
NetworkManager[5592]: <info>  [1595532318.9762] settings: hostname: using hostnamed
NetworkManager[5592]: <info>  [1595532318.9763] settings: hostname changed from (none) to "debian"
NetworkManager[7887]: <info>  [1595538936.1117] settings: hostname: using hostnamed
NetworkManager[7887]: <info>  [1595538936.1117] settings: hostname changed from (none) to "vegetables"

또한 호스트 이름이 로컬 무선 네트워크에 기록되고 OS가 해결된 것이 분명합니다.

https://documentation.meraki.com/MR/Monitoring_and_Reporting/Hostname_Visibility

관련 정보