सवाल मैं पुनरारंभ किए बिना होस्टनाम कैसे बदलूं?


मैं ओएस होस्टनाम बदलना चाहता हूं लेकिन मैं पुनरारंभ नहीं करना चाहता हूं।

मैंने संपादित किया है /etc/hostname लेकिन इसे लागू करने के लिए पुनरारंभ की आवश्यकता है। इससे कैसे बचें?


456
2017-12-14 08:56


मूल


चेतावनी: उबंटू 18+ के साथ काम नहीं करेगा जो डिफ़ॉल्ट रूप से क्लाउड-इनिट चला रहा है, जो बूट पर होस्टनाम नियंत्रित करता है। - nslntmnx


जवाब:


यह आसान है। बस गियर आइकन (स्क्रीन के ऊपरी दाएं कोने में स्थित) पर क्लिक करें, "इस कंप्यूटर के बारे में" स्क्रीन (गियर आइकन पर स्थित) खोलें और "डिवाइस का नाम" संपादित करें।

या, टर्मिनल में, निम्न आदेश का उपयोग करें:

sudo hostname your-new-name

जब तक आप पुनरारंभ नहीं करेंगे तब तक होस्टनाम आपके नए नाम पर सेट हो जाएगा। देख man hostname तथा मैं कंप्यूटर का नाम कैसे बदलूं? अधिक जानकारी के लिए। प्रयोग नहीं करें _ आपके नाम में

ध्यान दें

अपने परिवर्तनों को पुनरारंभ करने के बाद /etc/hostname उपयोग किया जाएगा, इसलिए (जैसा कि आपने सवाल में कहा था), आपको अभी भी उपयोग करना चाहिए

sudo -H gedit /etc/hostname

(या कुछ अन्य संपादक) ताकि फ़ाइल में होस्टनाम हो।

यह जांचने के लिए कि फ़ाइल सही तरीके से स्थापित है, चलाएं:

sudo service hostname start

आपको भी संपादित करना चाहिए /etc/hosts और जो पंक्ति पढ़ता है उसे बदलें:

127.0.1.1     your-old-hostname

ताकि अब इसमें आपका नया होस्टनाम शामिल हो। (यह आवश्यक है अन्यथा कई आदेश काम करना बंद कर देंगे।)


593
2017-12-14 10:27



मैं फिर से शुरू नहीं करना चाहता हूँ - Deepak Rajput
मुझे पता है। यही कारण है कि आपको 'होस्टनाम' कमांड का उपयोग करना चाहिए। मैं सिर्फ यह स्पष्ट करना चाहता था कि 'होस्टनाम' कमांड केवल होस्टनाम को तब तक बदल देता है जब तक आप पुनरारंभ / क्रैश / आदि नहीं करते। बाद में यह फ़ाइल से नाम फिर से पढ़ेगा। - jasperado
निर्भर करता है। अगर आपने कमांड दर्ज किया है तो आपको पुनरारंभ करने की आवश्यकता नहीं है। होस्टनाम पहले ही बदल दिया गया है। लेकिन केवल आपके अगले पुनरारंभ करें। - jasperado
ध्यान दें कि आपको भी बदलना होगा /etc/hosts (अन्य उत्तरों देखें) - JB.
संक्षेप में, हालांकि hostname नए नाम को तत्काल प्रभाव डालने का कारण बन जाएगा, यह तब तक "स्थायी" नहीं है जब तक कि आप भी बदल नहीं जाते /etc/hostname तथा /etc/hosts, क्योंकि वे फ़ाइलें हैं जिन्हें पुनरारंभ या क्रैश के बाद पढ़ा जाएगा, निश्चित रूप से, आप समय से पहले की उम्मीद नहीं कर रहे हैं। - Tim Parenti


उबंटू 13.04 आगे

hostnamectl आदेश डेस्कटॉप और सर्वर संस्करण दोनों पर डिफ़ॉल्ट स्थापना का हिस्सा है।

यह होस्टनाम को इसके माध्यम से सेट करता है hostname आदेश और संपादन /etc/hostname। साथ ही स्थिर होस्टनाम सेट करने के साथ, यह "सुंदर" होस्टनाम सेट कर सकता है, जिसका उपयोग उबंटू में नहीं किया जाता है। दुर्भाग्य से, संपादन /etc/hosts अभी भी अलग से किया जाना है।

hostnamectl set-hostname new-hostname

यह आदेश का हिस्सा है systemd-services पैकेज (जो, उबंटू 14.04 के रूप में भी शामिल है timedatectl तथा localectl आदेशों)। जैसा कि उबंटू माइग्रेट करता है systemd, यह उपकरण भविष्य है।


250
2017-08-27 21:03



ध्यान दें यह हर जगह उपलब्ध नहीं है। बस मेरी उबंटू 14.04 एलटीएस एआरएम -7 स्थापना को देखा, और hostnamectl अस्तित्व में नहीं है मान लें कि उबंटू के कुछ स्वाद अभी तक व्यवस्थित नहीं हैं। - Stéphane
@ स्टीफन कमांड सिस्टम सुइट का हिस्सा हैं, लेकिन वे स्वतंत्र रूप से उपलब्ध हैं। इस मामले में, 13.04-14.10 कमांड द्वारा उपलब्ध है, init के रूप में systemd का उपयोग नहीं करते हैं। - muru
@ H2ONaCl खोल चर सेट स्टार्टअप पर सेट है, बस एक और खोल खोलें और होस्टनाम चर ठीक होना चाहिए। सूडो के लिए, होस्टनाम रिज़ॉल्यूशन के बारे में त्रुटि ने मुझे वास्तव में कुछ भी करने से रोका नहीं है। - muru
@ H2ONaCl आह, लेकिन HOSTNAME variablle मानक नहीं है - IIRC डैश और ksh के पास यह नहीं है, zsh HOST का उपयोग करता है, इसलिए जहां तक ​​शैल चर चलते हैं, यह ढेर के नीचे है। - muru
अभी भी उबंटू 18.04 एलटीएस में काम करता है। - donlucacorleone


पुनरारंभ के बिना

उबंटू में होस्टनाम या कंप्यूटर नाम बदलना पुनरारंभ किए बिना

संपादित करें / etc / hostname और नए मान में बदलें,

nano /etc/hostname 

संपादित करें / etc / hosts और पुराने 127.0.1.1 लाइन को अपने नए होस्टनाम में बदलें

127.0.0.1   localhost
127.0.1.1   ubuntu.local    ubuntu   # change to your new hostname/fqdn

ध्यान दें : मैंने इसे फोरम> एडिट / इत्यादि / होस्ट्स पर पढ़ा है और पुराने 127.0.1.1 लाइन को अपने नए होस्टनाम में बदल दिया है (यदि आप ऐसा नहीं करते हैं, तो आप अब सुडो का उपयोग करने में सक्षम नहीं होंगे। अगर आपने पहले ही इसे किया है, ग्रब मेनू पर ईएससी दबाएं, वसूली चुनें, और अपनी मेजबान फ़ाइल को सही सेटिंग्स में संपादित करें)

अब रीबूट के बाद, आपका होस्टनाम आपके द्वारा चुने गए नए होंगे

रीबूट के बिना

बदलने के लिए रीबूट के बिना, आप / etc / hostname संपादित करने के बाद hostname.sh का उपयोग कर सकते हैं। जब तक आप नीचे दिए गए आदेश को निष्पादित नहीं करते हैं, आपको अपने मेजबान नामों को / etc / hosts (127.0.0.1 newhost oldhost) में रखना होगा:

sudo service hostname start

ध्यान दें : परिवर्तन को सक्रिय करने के लिए ऊपर आदेश। इस फ़ाइल (/ etc / hostname) में सहेजा गया होस्टनाम सिस्टम रीबूट पर संरक्षित किया जाएगा (और उसी सेवा का उपयोग करके सेट किया जाएगा)।


58
2018-02-13 20:16



उबंटू 12.10 पर, अंतिम भाग निम्न त्रुटि संदेश के साथ काम नहीं करता है sudo: unable to resolve host old-hostname। उस भाग के लिए, @ जेस्पेराडो समाधान अच्छी तरह से काम करता है। - Frédéric Grosshans
यदि आप अपडेट नहीं करते हैं /etc/hosts, मंथ चीजें 12.04.2 एलटीएस पर असफल होने लगती हैं, जिनमें शामिल हैं w आदेश, अपाचे, /sbin/reboot और भी बहुत कुछ। अपडेट करना सुनिश्चित करें /etc/hosts - Josh
आप दोनों को संदर्भित करते हैं 127.0.0.1 के लिये localhost तथा 127.0.1.1 कस्टम होस्टनाम के लिए। सही? फिर, एक कार्रवाई के लिए, अपने उत्तर के अंत की ओर एक rebot के बिना, आप संदर्भित करते हैं /etc/hosts तथा 127.0.0.1 newhost oldhost। तो, ए के लिए कोई ज़रूरत नहीं है 127.0.1.1 पता? - Nikos Alexandris
मेरे लिए काम नहीं किया मुझे उपयोग करना पड़ा sudo nano /etc/hosts परिवर्तन प्रभावी होने के लिए; सुडो के बिना, बस nano /etc/hosts परिवर्तन को बचाया नहीं है - conman253
पुनरारंभ और रीबूट के बीच क्या अंतर है? - storm


जब आप उबंटू इंस्टॉल कर रहे थे तो डिफ़ॉल्ट नाम सेट किया गया था। होस्ट और होस्टनाम फ़ाइलों को संपादित करके आप डेस्कटॉप और सर्वर दोनों में जो कुछ भी चाहते हैं उसे आसानी से बदल सकते हैं। नीचे कैसे है:

  1. दबाएँ Ctrlऑल्टटी टर्मिनल खोलने के लिए कीबोर्ड पर। जब यह खुलता है, तो निम्न आदेश चलाएं: sudo hostname NEW_NAME_HERE

यह होस्टबैक को अगले रीबूट तक बदल देगा। परिवर्तन आपके वर्तमान टर्मिनल में तुरंत दिखाई नहीं देगा। नया होस्टनाम देखने के लिए एक नया टर्मिनल शुरू करें।

  1. नाम को स्थायी रूप से बदलने के लिए, होस्ट फ़ाइलों को संपादित करने के लिए कमांड चलाएं:

    sudo -H gedit /etc/hostname तथा sudo -H gedit /etc/hosts

बिना जीयूआई के उबंटू सर्वर के लिए, चलाएं sudo vi /etc/hostname तथा sudo vi /etc/hosts और उन्हें एक-एक करके संपादित करें। दोनों फाइलों में, जो नाम आप चाहते हैं उसे बदलें और उन्हें सहेजें।

अंत में, परिवर्तन लागू करने के लिए अपने कंप्यूटर को पुनरारंभ करें।


42
2017-11-01 22:47





यहां एक स्क्रिप्ट है जो होस्टनाम को निर्धारित तरीके से बदलती है। यह सुनिश्चित करता है कि न केवल sudo लेकिन X11 एप्लिकेशन भी पुनरारंभ करने के साथ काम करना जारी रखते हैं।

उपयोग: sudo ./change_hostname.sh new-hostname

#!/usr/bin/env bash
NEW_HOSTNAME=$1
echo $NEW_HOSTNAME > /proc/sys/kernel/hostname
sed -i 's/127.0.1.1.*/127.0.1.1\t'"$NEW_HOSTNAME"'/g' /etc/hosts
echo $NEW_HOSTNAME > /etc/hostname
service hostname start
su $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')"

16
2018-03-07 06:30



लिपि में आखिरी पंक्ति क्या है su $SUDO_USER -c "xauth add $(xauth list | sed 's/^.*\//'"$NEW_HOSTNAME"'\//g' | awk 'NR==1 {sub($1,"\"&\""); print}')" कर? बस उत्सुक। - Fr0zenFyr
@ Fr0zenFyr: यह वैध X11 प्रमाणीकरण टोकन लेता है (xauth list) और नए होस्टनाम के साथ पुराने होस्टनाम को प्रतिस्थापित करता है (sed)। फिर awk पहले तर्क के आसपास उद्धरण डालता है xauth add इसलिये xauthइनपुट और आउटपुट प्रारूप सममित नहीं हैं। - Lucas
स्पष्टीकरण के लिए धन्यवाद। परिवर्तनों को प्रभावी होने के लिए मैंने हमेशा रीबूट किया था। +1 - Fr0zenFyr
@trakz: असल में 127.a.b.c जो भी संख्या है, आईईटीएफ आरएफसी के अनुसार सभी लोकहोस्ट है। (ज्यादातर लोग बस यह नहीं जानते हैं, लेकिन अधिकांश के रूप में, अनुमोदित संपादित करें) - Fabby


पुनरारंभ किए बिना:

  1. में होस्टनाम बदलें /etc/hostname
  2. अद्यतन करें /etc/hosts तदनुसार
  3. sudo sysctl kernel.hostname=mynew.local.host

अपने वर्तमान होस्टनाम के साथ जांचें hostname -f


12
2018-03-31 14:46



16.04 के साथ, sysctl sudo: unable to resolve host oldname, sysctl: setting key "kernel.hostname": Read-only file system। शायद क्योंकि प्रॉक्सीमॉक्स के अंदर एक सीटी है। - Pablo Bianchi


अपना वर्तमान होस्टनाम प्राप्त करने के लिए:

cat /etc/hostname

इसे किसी भी टेक्स्ट एडिटर में बदला जा सकता है। आपको 127.0.0.1 के खिलाफ / etc / hosts में स्थानीयहोस्ट के अलावा अन्य प्रविष्टि को भी अपडेट करने की आवश्यकता होगी।


7
2017-09-14 01:12



या बस कमांड लाइन से "होस्टनाम" कमांड चलाएं। - elomage


  1. की सामग्री को बदलें /etc/hostname वांछित होस्टनाम के साथ (आप के साथ संपादित कर सकते हैं sudo nano /etc/hostname)
  2. में /etc/hosts, 127.0 के बगल में प्रविष्टि को प्रतिस्थापित करें।1.1 वांछित होस्टनाम के साथ (आप के साथ संपादित कर सकते हैं sudo nano /etc/hosts)
  3. निष्पादित sudo service hostname restart; sudo service networking restart

4
2018-05-08 18:26



चेतावनी: उबंटू 18+ के साथ काम नहीं करेगा जो डिफ़ॉल्ट रूप से क्लाउड-इनिट चला रहा है, जो बूट पर होस्टनाम नियंत्रित करता है। - nslntmnx
@nslntmnx क्या आप इस बारे में निश्चित हैं? मैं क्लाउड-config.txt में देखता हूं # if you do nothing you'll end up with: # * /etc/hostname (and 'hostname') managed via: 'preserve_hostame: false' # if you do not change /etc/hostname, it will be updated with the cloud # provided hostname on each boot. If you make a change, then manual # maintenance takes over, and cloud-init will not modify it. मेरे पास वर्तमान में उबंटू 18 नहीं है इसलिए मैं सप्ताहांत तक इसका परीक्षण नहीं कर सकता। - George


उबंटू 16.04

यह बिना है पुनः आरंभ करें और बिना किसी टर्मिनल उपयोग के।

  • के लिए जाओ सिस्टम सेटिंग्स -> विवरण
  • वो रहा। के बगल में यन्त्र का नाम, एक टेक्स्ट बॉक्स है।
  • टेक्स्ट-बॉक्स और बंद विंडो संपादित करें।

टर्मिनल खोलें। खुद के लिए देखें।

(पुराने संस्करणों के लिए, टेक्स्ट-बॉक्स संपादन योग्य नहीं है।)


4
2018-03-13 18:26





sudo hostname your-new-name
sudo /etc/init.d/networking restart

मुझे लगता है कि नौकरी करना चाहिए


3
2017-12-20 12:43



मुझे नहीं लगता कि यह पुनरारंभ होगा - Collin Anderson
चेतावनी: उबंटू 18+ के साथ काम नहीं करेगा जो डिफ़ॉल्ट रूप से क्लाउड-इनिट चला रहा है, जो बूट पर होस्टनाम नियंत्रित करता है। - nslntmnx


मैंने जवाब पढ़े हैं, लेकिन मुझे लगता है कि शायद आप इसे ढूंढ रहे हैं:

संपादन के बाद बस इन दो आदेशों को निष्पादित करें /etc/hostname फ़ाइल।

$ sudo service hostname restart
$ exec bash

बस इतना ही। पुनरारंभ करने की कोई आवश्यकता नहीं है। यह भी सुनिश्चित करें कि आप नाम भी बदल दें /etc/hosts फ़ाइल।


3
2017-09-28 18:55



कई अन्य उत्तरों के विपरीत, यह अद्यतन नहीं होता है /etc/hosts (मैंने 14.04 को पुष्टि की)। - IsaacS
चेतावनी: उबंटू 18+ के साथ काम नहीं करेगा जो डिफ़ॉल्ट रूप से क्लाउड-इनिट चला रहा है, जो बूट पर होस्टनाम नियंत्रित करता है। - nslntmnx