จะตั้งชื่อโดเมนบน GNU / Linux ได้อย่างไร


27

คล้ายกับชื่อโฮสต์ที่สามารถเปลี่ยนแปลงได้หลายวิธี:

  • ใช้hostnameคำสั่งชั่วคราว
  • การใช้อย่างถาวร/etc/hostname(หรือ/etc/sysconfig/networkหรือ/etc/HOSTNAMEไฟล์เหล่านี้ถูกใช้โดยสคริปต์เริ่มต้น)

ฉันต้องการเปลี่ยนชื่อโดเมน ฉันสามารถใช้domainnameคำสั่ง แต่มีวิธีที่จะทำให้มันถาวรตลอดการเรียบเครื่องใช่ไหม? ฉันคิดว่ามันสามารถกำหนดค่าใน/etc/resolv.confแต่ไฟล์นี้ถูกสร้างขึ้นโดยทั่วไปและฉันไม่ทราบความแตกต่างระหว่างsearchและdomainสั่ง และเวลาเท่าdomainnameไหร่ข้อมูลที่มีการส่งไปยังโปรแกรมเพื่อตั้งชื่อโดเมน?

คุณมีความคิดเห็นเกี่ยวกับเรื่องนี้ไหม?

ฉันต้องการที่จะเข้ากันได้เป็นส่วนใหญ่ในการกระจาย ดังนั้นถ้าใครมีพอยน์เตอร์ในการกระจายรสชาติที่แตกต่างฉันยินดีที่จะยอมรับพวกเขา


การกระจายทุกครั้งทำสิ่งนี้แตกต่างกัน คนไหนที่คุณสนใจ และคุณอ่านเอกสารของพวกเขาเหรอ?
Michael Hampton

ส่วนใหญ่รสชาติ RedHat และ Debian และฉันไม่พบข้อมูลที่เกี่ยวข้องในเอกสารประกอบ แต่บางทีฉันไม่ได้ดูหนักพอฉันยอมรับว่าฉันไม่รู้ว่ามันอยู่ที่ไหนในเอกสาร (หรือแม้ว่ามันจะอยู่ในเอกสาร)
มิลเดรด

1
นั่นยุติธรรม ในเอกสารของ Red Hat มันฝังอยู่ในภาคผนวก ในขณะที่อยู่ใน Debian มันไม่ได้ถูกฝังอยู่ในภาคผนวกแต่มันสับสน ...
Michael Hampton

1
@Michael ลิงก์นี้ในรายการส่งเมลเดเบียนส่วนใหญ่มีประโยชน์โดยเฉพาะอย่างยิ่งในที่สุดเพื่อตอบคำถามของคุณคุณกำหนดค่า FQDN ของคุณทุกที่ที่คุณต้องการให้ชื่อ resovled หากคุณต้องการมันในไฟล์บนกล่องตัวเองมันจะไปใน / etc / hosts หากคุณเรียกใช้เซิร์ฟเวอร์ชื่อของคุณเองเช่นฉัน (ฉันเรียกใช้ dnsmasq เพื่อความเรียบง่าย) จากนั้นคุณจะต้องบันทึกข้อมูลใน
Mildred

บน Red hat 7 และระบบที่ได้รับคุณควรใช้ hostnamectl เพื่อตั้งค่าชื่อโฮสต์ cyberciti.biz/faq/rhel-redhat-centos-7-change-hostname-command/ …
Xavy

คำตอบ:


42

ตั้งค่า FQDN

ฉันใช้ Debian 7 และนี่คือสิ่งที่ใช้ได้ผลสำหรับฉัน ขอบคุณที่เฟอร์นันโดแบร์โต

sudoedit / etc / hostname

server # here's where you put the server's host name

เปิดใช้งานชื่อโฮสต์

sudo hostname -F / etc / hostname

เพิ่มชื่อโดเมนและที่อยู่ไปยังเซิร์ฟเวอร์

sudoedit / etc / hosts

192.168.1.2   server.domain server

VERIFY

> hostname --short
server

> hostname --domain
domain

> hostname --fqdn
server.domain

> hostname --ip-address
192.168.1.2

หลังจากเปลี่ยนชื่อเซิร์ฟเวอร์ใน/etc/hostnameคุณอาจไม่สามารถแก้ไข/etc/hostsได้ ในกรณีนี้คุณต้องใช้xauth addตามที่ระบุไว้ในคำตอบนี้stackoverflow.com/questions/20611783/…
Junior M

1
sudo vimคุณไม่ควรใช้ ชุดและการใช้งาน$EDITOR sudoedit
törzsmókus

5

เมื่อคุณใช้redhat-baseระบบ Linux ใช้/etc/sysconfig/networkไฟล์และคุณควรจะตั้งค่าตัวแปรHOSTNAMEไปFQDNเมื่อคุณใช้FQDN, linuxตัวเองจะกำหนดชื่อโดเมน

ตัวอย่างเช่น:

HOSTNAME=web.mydomain.com

แต่เมื่อคุณใช้debian-baseระบบคุณควรเติม/etc/hostnameไฟล์ด้วยFQDN:

web.mydomain.com

หมายเหตุ:หากคุณต้องการตั้งdomain nameให้แน่ใจว่าตั้งค่าFQDN(ชื่อโดเมนที่มีคุณสมบัติครบถ้วน)

เมื่อคุณตั้งค่าแสดงให้คุณเห็นhostname -ddomain name


1
ขอบคุณ แต่ฉันรู้สึกว่าไฟล์เหล่านี้ควรมีชื่อโฮสต์โดยไม่มีส่วนของโดเมน ถ้าฉันทำสิ่งที่คุณแนะนำชื่อโฮสต์จะคืนค่า fqdn โดยตรง (ไม่แตกต่างกันระหว่างhostnameและhostname -f)
มิลเดรด

โอ้โดยวิธีการฉันลืมที่จะบอกว่าคุณควรตั้งชื่อโฮสต์ด้วยมือhostname web.mydomain.comหลังจากกำหนดค่าไฟล์ของคุณ เพราะเมื่อคุณกำหนดค่าหน่วยความจำไฟล์ของคุณไม่สามารถใช้การเปลี่ยนแปลงได้ (หากมีประโยชน์อย่าลืมการตั้งค่าสถานะที่เป็นประโยชน์)
PersianGulf

4

man hostnameถูกอ้างถึงตั้งแต่ต้นจนจบ

FILES
       /etc/hostname  Historically  this file was supposed to only contain the hostname and not the full canonical
       FQDN. Nowadays most software is able to cope with a full FQDN here. This file is read at boot time  by  the
       system initialization scripts to set the hostname.

       /etc/hosts Usually, this is where one sets the domain name by aliasing the host name to the FQDN.

...

   THE FQDN
       The  FQDN (Fully Qualified Domain Name) of the system is the name that the resolver(3) returns for the host
       name, such as, ursula.example.com.  It is usually the hostname followed by the DNS domain  name  (the  part
       after the first dot).  You can check the FQDN using hostname --fqdn or the domain name using dnsdomainname.

       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.

ฉันจะบอกว่ามันอธิบายทุกสิ่งอย่างละเอียด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.