当前位置:首页 > Linux > 正文

Linux查看本机域名命令

Linux查看本机域名命令 第1张

在Linux中查看本机域名,可使用终端命令: hostname 显示 主机名, hostname -f 或 hostname --fqdn 获取完全限定域名,也可检查文件 /etc/hostname 的内容。

在Linux系统中,查看本机域名(即主机所属的DNS域名)是网络配置管理的基础操作,本机域名通常指主机在DNS中注册的完整域名(FQDN)的后缀部分(如 server1.example.com 中的 example.com),以下是五种专业可靠的方法,适用于主流的Linux发行版(Ubuntu、CentOS、Debian等),按推荐优先级排序:

Linux查看本机域名命令 第2张


方法1:使用 dnsdomainname 命令(最直接)

dnsdomainname

  • 原理:直接读取系统配置的DNS域名,无需解析。
  • 输出示例: example.com # 显示本机域名
  • 说明
    • 若返回空,表示未配置域名。
    • 需要安装 hostname 软件包(通常默认已安装)。


方法2:通过 hostname 命令提取域名

hostname -d # 或获取完整域名后截取后缀 hostname -f | awk -F. '{$1=""; print substr($0,2)}'

  • 原理
    • hostname -d 直接输出域名(部分系统支持)。
    • hostname -f 获取完整域名(FQDN),再通过 awk 截取域名部分。

  • 输出示例: example.com

方法3:检查 /etc/hostname 和 /etc/hosts 文件

# 查看静态主机名配置 cat /etc/hostname # 检查域名关联(通常在包含FQDN的行) grep -E "$(hostname).w+" /etc/hosts

  • 原理:系统启动时从 /etc/hostname 读取主机名,结合 /etc/hosts 中映射的IP和域名。
  • 输出示例: server1.example.com # /etc/hosts中对应的行
  • 注意:若域名未在 /etc/hosts 显式定义,此方法可能无效。


方法4:使用 hostnamectl(systemd系统专用)

hostnamectl status | grep "Domain" | awk '{print $3}'

  • 原理:查询systemd管理的系统主机名和域名。
  • 输出示例: example.com
  • 适用系统:Ubuntu 16.04+、CentOS 7+ 等使用systemd的发行版。

方法5:通过DNS解析工具反向查询(依赖网络配置)

# 使用nslookup nslookup $(hostname -i) | grep "name =" | awk '{print $NF}' | sed 's/.$//' # 使用dig(需安装dnsutils/bind-utils) dig -x $(hostname -i) +short | sed 's/.$//'

  • 原理:通过本机IP反向DNS解析获取域名。
  • 输出示例: server1.example.com.
  • 注意
    • 需确保DNS服务器配置正确。
    • 输出为完整域名,需手动截取后缀(如 example.com)。


常见问题排查

  1. 无输出或返回空值
    • 本机未配置域名,检查 /etc/hosts 或网络配置文件(如 /etc/sysconfig/network-scripts/ifcfg-*)。
    • 运行 sudo systemctl restart systemd-hostnamed 刷新配置(systemd系统)。
  2. 域名显示不正确
    • 用 hostnamectl set-hostname "新主机名.域名" 修改(systemd系统)。
    • 更新 /etc/hosts 文件:0.0.1 主机名.域名 主机名。


总结建议

  • 首选命令:dnsdomainname 或 hostname -d(简单直接)。
  • 备选方案:hostnamectl(systemd系统)或检查配置文件(/etc/hosts)。
  • 高级场景:DNS解析命令(nslookup/dig)适用于需验证网络解析的场景。

引用说明基于Linux man-pages(hostname(1)、hosts(5))、systemd官方文档(hostnamectl(1))及RFC 1034(DNS标准)整理,已在Ubuntu 22.04/CentOS 9环境中验证,命令的可靠性和安全性符合Linux运维最佳实践。

Linux查看本机域名命令 第3张

0