Linux修改主機名【轉】


一、永久修改
修改/etc/sysconfig/network,在里面指定主機名稱HOSTNAME=
然后執行命令
hostname 主機名
這個時候可以注銷一下系統,再重登錄之后就行了。

或者修改/etc/hosts文件中添加
192.168.2.13      linux     ####ip +主機名
然后:
hostname 主機名
這個時候可以注銷一下系統,再重登錄之后

二、臨時修改:
shell下執行:
#hostname    主機名
ctrl+d注銷一下系統,再重登錄

========================================================================

 

cat /proc/sys/kernel/hostname查看。 
#hostname 
#cat /proc/sys/kernel/hostname 
上面兩種輸出結果相同。 
修改運行時Linux系統的hostname,即不需要重啟系統 
hostname命令可以設置系統的hostname 
#hostname newname 
newname即要設置的新的hostname,運行后立即生效,但是在系統重啟后會丟失所做的修改,如果要永久更改系統的hostname,就要修改相關的設置文件。 

我開始在測試的時候,只修改/etc/hosts,里面添加 192.168.1.61 blog.infernor.net blog,而/etc/sysconfig/network維持原狀,也就是里面的HOSTNAME=localhost.localdomain。我重啟系統后居然發現hostname給修改成了blog.infernor.net。這樣看的話,倒真覺得/etc/hosts是hostname的配置文件。后來終於在/etc/rc.d/rc.sysinit這個啟動腳本里發現了問題的所在。 
rc.sysinit文件里一開始就設置了hostname 
if [ -f /etc/sysconfig/network ]; then 
. /etc/sysconfig/network 
fi 
if [ -z "$HOSTNAME" -o "$HOSTNAME" = "(none)" ]; then 
HOSTNAME=localhost 
fi 
確實使用了/etc/sysconfig/network里的hostname值。不過后面還有一段關於設置hostname的 
ipaddr= 
if [ "$HOSTNAME" = "localhost" -o "$HOSTNAME" = "localhost.localdomain" ] 
; then 
ipaddr=$(ip addr show to 0/0 scope global | awk '/[[:space:]]inet 
/ { print gensub("/.*","","g",$2) }') 
if [ -n "$ipaddr" ]; then 
eval $(ipcalc -h $ipaddr 2>/dev/null) 
hostname ${HOSTNAME} 
fi 
fi 
腳本判斷hostname是否為localhost或者localhost.localdomain,如果是的話,將會使用接口IP地址對應的 hostname來重新設置系統的hostname。問題就出在這里,我的/etc/sysconfig/network默認的hostname是 localhost.localdomain,eth0的IP是192.168.1.61,而/etc/hosts里有192.168.1.61的記錄。於是就用192.168.1.61這條記錄來替換了hostname。 
估計這也是很多人將/etc/hosts誤以為是hostname的配置文件的原因。

 

轉自

linux的hostname(主機名)修改詳解_LINUX_操作系統_腳本之家
http://www.jb51.net/LINUXjishu/77534.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM