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

Linux查看本机域名命令

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

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

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


方法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 主机名.域名 主机名

总结建议

  • 首选命令dnsdomainnamehostname -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运维最佳实践。

0