호스트 이름과 도메인 이름을 올바르게 설정하는 방법은 무엇입니까?

호스트 이름과 도메인 이름을 올바르게 설정하는 방법은 무엇입니까?

Ubuntu 16.04를 실행하는 회사에서 서버를 임대했습니다. 이름을 company.org로 지정하겠습니다.

현재 내 서버 구성은 다음과 같습니다.

  • CPU 이름:server737263
  • 도메인 이름:company.org

내 FQDN은 다음과 같습니다.

user@server737263:~ $ hostname --fqdn
server737263.company.org

이것은 놀라운 일이 아닙니다.

나는 또한 도메인 이름을 임대하여 이름을 지정했습니다 domain.org. 제가 하고 싶은 것은 서버 이름을 server1.domain.org.

이는 내 호스트 이름을 로 구성 server1하고 내 도메인 이름을 로 구성하는 것을 의미합니다 domain.org.

어떻게 하면 올바르게 할 수 있나요?

실제로 맨페이지는 hostname명확하지 않습니다. 적어도 나에게는:

호스트 이름(1)

[...]

이름 설정

  • 하나의 인수 또는 --file 옵션과 함께 호출되면 이러한 명령은 호스트 이름 또는 NIS/YP 도메인 이름을 설정합니다. 호스트 이름은 sethostname(2) 함수를 사용하는 반면 세 도메인 이름인 ypdomainname 및 nisdomainname은 모두 setdomainname(2)을 사용합니다. 이는 다음에 재부팅할 때까지만 작동합니다. 영구적으로 변경하려면 /etc/hostname을 편집하십시오.

[...]

정규화된 도메인 이름

  • 호스트 이름 또는 dnsdomainname을 사용하여 FQDN을 변경할 수 없습니다.

[...]

편집만으로는 /etc/hostname부족한 것 같나요? 호스트 이름이 실제로 변경되면 FQDN도 변경되기 때문입니다. 또한 명령을 사용하여 호스트 이름을 변경하는 트릭을 읽었 sysctl kernel.hostname=server1지만 이것이 올바른 방법인지 추악한 트릭인지는 알 수 없습니다.

그래서:

  1. 호스트 이름을 설정하는 올바른 방법은 무엇입니까?

  2. 도메인 이름을 설정하는 올바른 방법은 무엇입니까?

답변1

호스트 이름을 설정하세요:

  • /etc/hostname새 호스트 이름으로 편집 해야 합니다 .

  • 그런 다음 sudo hostname $(cat /etc/hostname).

바이너리 가 있다고 가정하고 도메인을 설정합니다 resolvconf.

  • 에서는 then 행 (FQDN이 아닌 도메인 이름만 추가)을 /etc/resolvconf/resolv.conf.d/head추가합니다 .domain your.domain.name

  • 그런 다음 실행 sudo resolvconf -u하여 업데이트하세요 /etc/resolv.conf(또는 이전 변경 사항을 복사하세요 /etc/resolv.conf).

그렇지 않은 경우 해당 줄을 resolvconf편집 하고 추가하면 됩니다 ./etc/resolv.confdomain your.domain.name

어느 쪽이든:

마지막으로 /etc/hosts파일을 업데이트하세요. IP(루프백 여부), FQDN 및 호스트 이름 중 하나로 시작하는 줄이 하나 이상 있어야 합니다. ipv6 주소를 확인하면 호스트 파일은 다음과 같을 수 있습니다.

127.0.0.1 localhost
1.2.3.4 service.domain.com service

댓글에 있는 수많은 제안 에 대한 답변 hostnamectl: 필수 사항도 아니고 완전하지도 않습니다.

운영 체제가 systemd와 함께 제공되는 경우 1단계와 2단계 대신 이를 사용할 수 있습니다. 위에 제공된 단계는 systemd의 존재 여부(pclinuxos, devuan 등)에 관계없이 유효합니다.

답변2

sudo nano /etc/호스트 이름

hostname.domain.com

sudo nano/etc/hosts

127.0.0.1   hostname.domain.com hostname localhost

재시작!

/etc/hosts 파일의 FQDN 뒤에는 단일 호스트 이름이 있어야 합니다. Ubuntu 18.04.1 및 기타 모든 버전에서 잘 작동합니다. EC2 및 다른 곳에서.

파일 구문 분석 등을 망칠 필요가 없습니다.

그러면 호스트 이름이 셸에 표시되고 필요한 경우 FQDN이 표시됩니다.

답변3

Ubuntu 18.04.3 LTS(Bionic)용으로 작성된 지침

호스트 이름 변경:

sudo hostnamectl set-hostname server1

다음을 실행하여 결과를 확인합니다 hostnamectl.

root@www:/# hostnamectl
   Static hostname: server1       <-- Check this value
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 202c4264b06d49e48cfe72599781a798
           Boot ID: 43654fe8bdbf4387a0013ab30a155872
    Virtualization: xen
  Operating System: Ubuntu 18.04.3 LTS
            Kernel: Linux 4.15.0-65-generic
      Architecture: x86-64

새로운 네트워크 관리자를 통해 도메인을 변경하고,네트워크 계획, 매개변수를 편집 /etc/netplan/01-netcfg.yaml하고 변경하여 search:

sudoedit /etc/netplan/01-netcfg.yaml

구성 예:

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: yes
      nameservers:
          search: [ domain.org ]

두 번째로 로그인하여 sudo netplan try세션 중 하나에서 실행하고 다른 세션에서 설정을 확인하여 변경 사항을 테스트합니다.

# netplan try
Do you want to keep these settings?


Press ENTER before the timeout to accept the new configuration


Changes will revert in  97 seconds
Configuration accepted.
# systemd-resolve --status
...
Link 2 (eth0)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 8.8.8.8
                      8.8.4.4
          DNS Domain: domain.org      <-- Check this value
# cat /etc/resolv.conf
...
nameserver 127.0.0.53
options edns0
search domain.org    <-- Check this value
# hostname -f
server1.domain.org

모든 것이 정상입니다. sudo netplan try영구적으로 저장하려면 프롬프트에서 Enter 키를 누르세요.

답변4

내 도메인 항목을 파일과 파일을 편집해야 myhome.local하도록 변경해 보았습니다 . 내 파일은 이제 다음과 같습니다.myhome.lan/etc/hosts/etc/network/interfaces/etc/hosts

127.0.0.1   localhost
192.168.3.2 server.myhome.lan   server

/etc/network/interfaces파일은 이제 다음과 같습니다.

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto enp2s0
iface enp2s0 inet static
    address 192.168.3.2
    netmask 255.255.255.0
    network 192.168.3.0
    broadcast 192.168.3.255
    gateway 192.168.3.1
    # dns-* options are implemented by the resolvconf package, if installed
    dns-nameservers 192.168.3.1
    dns-search myhome.lan

이것은 나에게 잘 작동합니다.

관련 정보