Làm thế nào để đặt chính xác tên máy chủ và tên miền?


33

Tôi đang thuê một máy chủ, chạy Ubuntu 16.04 tại một công ty, hãy đặt tên là company.org.

Hiện tại, máy chủ của tôi được cấu hình như thế này:

  • tên máy chủ: server737263
  • tên miền: company.org

Đây là FQDN của tôi:

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

Điều này không đáng ngạc nhiên.

Tôi cũng đang thuê một tên miền, hãy đặt tên cho nó domain.org. Những gì tôi muốn làm là đổi tên máy chủ của tôi thành server1.domain.org.

Điều này có nghĩa là cấu hình tên máy chủ của tôi là server1và tên miền của tôi là domain.org.

Làm thế nào tôi có thể làm điều đó một cách chính xác?

Thật vậy, trang web cho hostnamekhông rõ ràng. Đối với tôi ít nhất:

HOSTNAME (1)

[...]

ĐẶT TÊN

  • Khi được gọi với một đối số hoặc với tùy chọn --file, các lệnh sẽ đặt tên máy chủ hoặc tên miền NIS / YP. hostname sử dụng hàm sethostname (2), trong khi cả ba tên miền, ypdomainname và nonomomainname đều sử dụng setdomainname (2). Lưu ý rằng điều này chỉ có hiệu lực cho đến lần khởi động lại tiếp theo. Chỉnh sửa / etc / tên máy chủ để thay đổi vĩnh viễn.

[...]

FQDN

  • Bạn không thể thay đổi FQDN bằng tên máy chủ hoặc dnsdomainname.

[...]

Vì vậy, có vẻ như chỉnh sửa /etc/hostnamelà không đủ? Bởi vì nếu nó thực sự thay đổi tên máy chủ, nó sẽ thay đổi FQDN. Ngoài ra còn có một mẹo tôi đọc để thay đổi tên máy chủ bằng lệnh sysctl kernel.hostname=server1, nhưng không có gì cho biết đây là cách chính xác hay là một thủ thuật xấu xí.

Vì thế:

  1. Cách chính xác để đặt tên máy chủ là gì?

  2. Cách chính xác để đặt tên miền là gì?

Câu trả lời:


31

Đặt tên máy chủ của bạn:

  • Bạn sẽ muốn chỉnh sửa /etc/hostnamevới tên máy chủ mới của bạn.

  • Sau đó, chạy sudo hostname $(cat /etc/hostname).

Đặt tên miền của bạn:

  • Sau đó, /etc/resolvconf/resolv.conf.d/headbạn sẽ thêm dòng sau đó domain your.domain.name(không phải FQDN của bạn, chỉ tên miền).

  • Sau đó, chạy sudo resolvconf -uđể cập nhật /etc/resolv.conf(thay vào đó, chỉ cần tái tạo thay đổi trước đó thành của bạn /etc/resolv.conf).

Cả hai:

Cuối cùng, cập nhật /etc/hoststập tin của bạn . Cần có ít nhất một dòng bắt đầu bằng một trong số IP của bạn (loopback hoặc không), FQDN và tên máy chủ của bạn. lấy địa chỉ ipv6, tệp máy chủ của bạn có thể trông như thế này:

127.0.0.1 localhost
1.2.3.4 service.domain.com service

7
Cả hai tập tin conf đều nói DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTENtrên máy chủ của tôi (cùng một phiên bản).
Walf

7
Đừng để bị lừa bởi thực tế là cảnh báo "KHÔNG EDIT" xuất hiện trong /etc/resolvconf/resolv.conf.d/head. Mọi thứ trong tệp đầu đều được thêm vào /etc/resolv.conftệp đầu ra kết quả , vì vậy đó là lý do cảnh báo nằm trong đó, để nó hiển thị trong kết quả cuối cùng. Đã ném tôi cho một vòng lặp lúc đầu.
njbair

7
Điều này dường như không áp dụng cho 18.04 LTS - không có tệp nào như vậy /etc/resolvconf/resolv.conf.d/headvà không có tiện ích như vậy resolvconf.
inopinatus

2
Bạn có thể cập nhật câu trả lời vớihostnamectl
Đổ chuông

1
Cũng lưu ý rằng nếu bạn sử dụng AWS, bạn cũng cần giữ nguyên tên máy chủ sau khi khởi động lại - sudo nano /etc/cloud/cloud.cfgcập nhật preserve_hostname: true(mặc định là false).
bshea

5

sudo nano / etc / tên máy chủ

hostname.domain.com

sudo nano / etc / host

127.0.0.1   hostname.domain.com hostname localhost

TÁI TẠO!

PHẢI CÓ MỘT SỐ HOSTNAME sau tệp FQDN trong / etc / hosts. Hoạt động tốt trên Ubuntu 18.04.1 và tất cả các phiên bản khác. Trên EC2 và các nơi khác.

Không gây rối với tập tin giải quyết hoặc bất cứ điều gì khác.

Điều đó cho thấy tên máy chủ trong shell và sau đó có FQDN khi bạn cần.


1

~ tên người đàn ông $

[…]
       You cannot change the FQDN with hostname or dnsdomainname.

       The  recommended  method  of  setting the FQDN is to make the hostname be an alias for the fully qualified name using /etc/hosts,
       DNS, or NIS. For example, if the hostname was "ursula", one might have a line in /etc/hosts which reads

              127.0.1.1    ursula.example.com ursula

       Technically: The FQDN is the name getaddrinfo(3) returns for the host name returned by gethostname(2).  The DNS  domain  name  is
       the part after the first dot.

       Therefore  it  depends  on the configuration of the resolver (usually in /etc/host.conf) how you can change it. Usually the hosts
       file is parsed before DNS or NIS, so it is most common to change the FQDN in /etc/hosts.

       If a machine has multiple network interfaces/addresses or is used in a mobile environment,  then  it  may  either  have  multiple
       FQDNs/domain  names  or  none at all. Therefore avoid using hostname --fqdn, hostname --domain and dnsdomainname.  hostname --ip-
       address is subject to the same limitations so it should be avoided as well.

[…]

Điều này đã được chỉ ra bởi poige trong một chủ đề khác và chính xác là những gì Lutz đề xuất ở đây.

Bạn không nên đặt fqdn của bạn vào /etc/hostname.


1

Hướng dẫn viết trên Ubuntu 18.04.3 LTS (bionic)

Thay đổi tên máy chủ:

sudo hostnamectl set-hostname server1

Kiểm tra kết quả bằng cách chạy 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

Thay đổi tên miền thông qua trình quản lý mạng mới, Netplan , bằng cách chỉnh sửa /etc/netplan/01-netcfg.yamlvà thay đổi searchtham số:

sudoedit /etc/netplan/01-netcfg.yaml

Cấu hình mẫu:

# 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 ]

Kiểm tra các thay đổi bằng cách đăng nhập lần thứ hai và chạy sudo netplan trytrong một trong các phiên và kiểm tra cài đặt trong lần khác:

# 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

Tất cả đều ổn, nhấn ENTER tại sudo netplan trydấu nhắc để làm cho mọi thứ vĩnh viễn.


0

Tôi cố gắng để thay đổi mục tên miền của tôi từ myhome.localđể myhome.lan tôi phải chỉnh sửa các /etc/hoststập tin và các /etc/network/interfacestập tin. /etc/hostsTập tin của tôi bây giờ trông như:

127.0.0.1   localhost
192.168.3.2 server.myhome.lan   server

/etc/network/interfacestập tin của tôi bây giờ trông như:

# 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

Việc này ổn với tôi.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.