Linux操作系統的hostname是一個kernel變量,可以通過hostname命令來查看本機的hostname。也可以直接cat /proc/sys/kernel/hostname查看。
此命令的適用范圍:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。早期版本這個命令屬於net-tool工具的一部分,現在由hostname程序完全提供。
-----------------------------------
hostname
-----------------------------------
cat /proc/sys/kernel/hostname
-----------------------------------
上面兩種輸出結果相同。
修改運行時Linux系統的hostname,即不需要重啟系統,運行后立即生效,但是在系統重啟后會丟失所做的修改,如果要永久更改系統的hostname,就要修改相關的設置文件
一、命令格式:
hostname [參數]
參數:
-h 顯示幫助文檔
-V 顯示命令版本
-v 顯示詳細執行過程
-a 顯示主機別名
-d 顯示主機dns域名
-F file 從文件讀取
-f 顯示完全格式的域名
-A 顯示機器的全部FQDNs
-i 顯示指定主機的ip地址
-I 顯示主機所有的地址
-s 以短格式顯示,僅顯示從第一個點分開的部分
-y 顯示nis域名
二、舉例
1.臨時修改:
-----------------------------------
hostname newhostname
-----------------------------------
2.永久修改,通過配置文件修改,系統重啟后生效:
-----------------------------------
vi /etc/sysconfig/network #CentOS系列發行版的配置文件,
NETWORKING=yes
HOSTNAME=hostname #在這修改把hostname的內容給成你的新主機名即可
-----------------------------------
vi /etc/hostname #Debian系列發行版配置文件
hostname #在這修改把hostname的內容給成你的新主機名即可
-----------------------------------
vi /etc/HOSTNAME #SUSE系列發行版配置文件
hostname #在這修改把hostname的內容給成你的新主機名即可
-----------------------------------
3、設置FQDN
FQDN是Fully Qualified Domain Name的縮寫, 含義是完整的域名. 例如, 一台機器主機名(hostname)是www, 域后綴(domain)是example.com, 那么該主機的FQDN應該是 www.example.com.另外, 其實FQDN最后是以”.”來結尾的, 但是大部分的應用和服務器都允許忽略最后這個點。
Linux允許用戶通過hostname命令查看並設置主機名。 用戶也可以通過hostname -f命令得到該主機的FQDN. 但是, 卻沒有直接設置FQDN的命令,可以通過 /etc/hostname + /etc/hosts組合進行設置
編輯 /etc/hosts,增加一行
--------------------------------------------------
172.0.0.1 hostname.example.com hostname #172.0.0.1為主機的ip地址,hostnamew為上面設置的主機名,example.com域名
--------------------------------------------------
退出ssh,再登陸,就應該生效。上面的方法Debian,SUSE,CentOS系列都適用
4、查看主機名
-----------------------------------
[root@CentOS ~]# hostname
CentOS
-----------------------------------
5、查看主機FQDN
-----------------------------------
[root@CentOS ~]# hostname -f
CentOS.example.com
-----------------------------------
三、host文件
hosts文件的作用相當如DNS,提供IP地址到hostname的對應。早期的互聯網計算機少,單機hosts文件里足夠存放所有聯網計算機。不過隨着互聯網的發展,這就遠遠不夠了。於是就出現了分布式的DNS系統。由DNS服務器來提供類似的IP地址到域名的對應。具體可以man hosts。Debian,SUSE,CentOS系列都適用
Linux系統在向DNS服務器發出域名解析請求之前會查詢/etc/hosts文件,如果里面有相應的記錄,就會使用hosts里面的記錄。/etc/hosts文件通常里面包含這一條記錄
127.0.0.1 localhost.localdomain localhost
hosts文件格式是一行一條記錄,分別是IP地址 hostname aliases,三者用空白字符分隔,aliases可選。
127.0.0.1到localhost這一條建議不要修改,因為很多應用程序會用到這個,比如sendmail,修改之后這些程序可能就無法正常運行。
修改hostname后,如果想要在本機上用newhostname來訪問,就必須在/etc/hosts文件里添加一條newhostname的記錄。比如我的eth0的IP是192.168.1.61,我將hosts文件修改如下:
-----------------------------------
vi /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.1.61 CentOS.example.com CentOS
-----------------------------------
這樣,我就可以通過CentOS或者CentOS.example.com來訪問本機。