होस्टनाम और डोमेन नाम को सही ढंग से कैसे सेट करें?


33

मैं एक सर्वर किराए पर ले रहा हूं, एक कंपनी में Ubuntu 16.04 चल रहा है, चलो इसे company.org नाम दें।

वर्तमान में, मेरा सर्वर इस तरह कॉन्फ़िगर किया गया है:

  • होस्टनाम: server737263
  • डोमेन नाम: company.org

यहाँ मेरा FQDN है:

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

यह आश्चर्य की बात नहीं है।

मैं एक डोमेन नाम भी किराए पर दे रहा हूं, चलो इसे नाम दें domain.org। मैं अपने सर्वर का नाम बदलना चाहूंगा server1.domain.org

इसका अर्थ है मेरे होस्टनाम को server1अपने डोमेन नाम के रूप में कॉन्फ़िगर करना domain.org

मैं इसे सही तरीके से कैसे कर सकता हूं?

दरअसल, इसके लिए मैनपेज hostnameस्पष्ट नहीं है। मेरे लिए कम से कम:

HOSTNAME (1)

[...]

नाम भरें

  • जब एक तर्क या --file विकल्प के साथ बुलाया जाता है, तो कमांड होस्ट नाम या NIS / YP डोमेन नाम सेट करते हैं। hostname sethostname (2) फ़ंक्शन का उपयोग करता है, जबकि सभी तीन domainname, ypdomainname और nisdomainname setdomainname (2) का उपयोग करते हैं। ध्यान दें, यह केवल अगले रिबूट तक प्रभावी है। स्थायी परिवर्तन के लिए / etc / hostname संपादित करें।

[...]

FQDN

  • आप होस्टनाम या dnsdomainname के साथ FQDN को नहीं बदल सकते।

[...]

तो ऐसा लगता है कि संपादन /etc/hostnameपर्याप्त नहीं है? क्योंकि अगर यह वास्तव में hostname को बदल देता है, तो यह FQDN बदल जाता है। वहाँ भी एक चाल है जिसे मैंने कमांड के साथ होस्टनाम बदलने के लिए पढ़ा है sysctl kernel.hostname=server1, लेकिन कुछ भी नहीं कहता है कि यह सही तरीका है या बदसूरत चाल है।

इसलिए:

  1. Hostname सेट करने का सही तरीका क्या है?

  2. डोमेन नाम सेट करने का सही तरीका क्या है?

जवाबों:


31

अपना होस्टनाम सेट करना:

  • आप /etc/hostnameअपने नए होस्टनाम के साथ संपादन करना चाहते हैं ।

  • फिर, भागो sudo hostname $(cat /etc/hostname)

अपना डोमेन सेट करना:

  • फिर, /etc/resolvconf/resolv.conf.d/headआप तत्कालीन पंक्ति domain your.domain.name(आपके FQDN, सिर्फ डोमेन नाम नहीं) जोड़ देंगे ।

  • फिर, sudo resolvconf -uअपने को अपडेट करने के लिए चलाएं /etc/resolv.conf(वैकल्पिक रूप से, बस अपने पिछले परिवर्तन को पुन: उत्पन्न करें /etc/resolv.conf)।

दोनों:

अंत में, अपनी /etc/hostsफ़ाइल को अपडेट करें । आपके आईपी (लूपबैक या नहीं), आपके FQDN और आपके होस्टनाम में से कम से कम एक लाइन शुरू होनी चाहिए। IPv6 पतों को मिटाकर, आपकी होस्ट फ़ाइल इस तरह दिख सकती है:

127.0.0.1 localhost
1.2.3.4 service.domain.com service

7
वे दोनों गोपनीय फाइलें DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTENमेरे सर्वर (समान संस्करण) पर कहती हैं ।
वालफ

7
इस तथ्य से मूर्ख मत बनो कि "Do NOT EDIT" चेतावनी में प्रकट होता है /etc/resolvconf/resolv.conf.d/head। हेड फ़ाइल में सब कुछ परिणामी /etc/resolv.confआउटपुट फ़ाइल से जुड़ा हुआ है , इसीलिए इसमें चेतावनी दी गई है, ताकि यह अंतिम परिणाम में दिखाई दे। मुझे पहले एक पाश के लिए फेंक दिया।
njbair

7
यह 18.04 LTS पर लागू नहीं होता है - ऐसी कोई फ़ाइल नहीं है /etc/resolvconf/resolv.conf.d/headऔर ऐसी कोई उपयोगिता नहीं है resolvconf
इनोपिनाटस

2
आप जवाब को अद्यतन कर सकते हैंhostnamectl
रिंग

1
ध्यान दें कि यदि आप AWS का उपयोग करते हैं, तो आपको रिबूट के बाद होस्टनाम को संरक्षित करने की भी आवश्यकता होगी - sudo nano /etc/cloud/cloud.cfgअपडेट preserve_hostname: true(डिफ़ॉल्ट है false)।
बिशना

5

sudo नैनो / etc / hostname

hostname.domain.com

सुडो नैनो / आदि / मेजबान

127.0.0.1   hostname.domain.com hostname localhost

रिबूट!

FQDN के बाद / etc / होस्ट फ़ाइल के बाद SINGLE HOSTNAME का होना आवश्यक है। उबंटू 18.04.1 और अन्य सभी संस्करणों पर ठीक काम करता है। EC2 और अन्य जगहों पर।

संकल्प फ़ाइल या कुछ और के साथ गड़बड़ नहीं किया।

शेल में होस्टनाम दिखाता है और जब आपको इसकी आवश्यकता होती है तब FQDN होता है।


1

~ $ आदमी hostname

[…]
       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.

[…]

यह एक अन्य धागे में बेज द्वारा इंगित किया गया था और वास्तव में लुट्ज़ ने यहां प्रस्तावित किया है।

आपको अपना fqdn नहीं लगाना चाहिए /etc/hostname


1

Ubuntu 18.04.3 LTS (बायोनिक) के खिलाफ लिखे गए निर्देश

होस्टनाम बदलें:

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 दबाएँ ।


0

मैंने अपने डोमेन प्रविष्टि को बदलने की कोशिश 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

यह मेरे लिए ठीक काम करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.