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
호스트 이름을 설정하세요:
/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.conf
domain 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
이것은 나에게 잘 작동합니다.