hostname # 显示当前主机名
hostname -f # 显示完全限定域名(FQDN)
hostname -i # 显示主机名对应的IP地址
nslookup $(hostname)
dig $(hostname)
ping $(hostname)
cat /etc/hosts
cat /etc/resolv.conf
确保hosts文件包含正确的主机名映射:
sudo nano /etc/hosts
添加如下格式的行:
<IP地址> <主机名> <别名(可选)>
例如:
192.168.1.10 server1.example.com server1
sudo nano /etc/hostname
只包含主机名(不带域名),然后重启或运行:
sudo hostname -F /etc/hostname
编辑/etc/resolv.conf:
sudo nano /etc/resolv.conf
添加DNS服务器:
nameserver 8.8.8.8
nameserver 8.8.4.4
nmcli general hostname
sudo nmcli general hostname new-hostname
Debian/Ubuntu:
sudo hostnamectl set-hostname new-hostname
RHEL/CentOS:
sudo hostnamectl set-hostname new-hostname
sudo systemctl restart systemd-hostnamed
传统方法:
sudo sysctl kernel.hostname=new-hostname
bash
hostname
hostname -f
ping $(hostname)
编辑/etc/dhcp/dhclient.conf:
send host-name "your-hostname";
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, domain-search, host-name,
dhcp6.name-servers, dhcp6.domain-search,
netbios-name-servers, netbios-scope, interface-mtu,
rfc3442-classless-static-routes, ntp-servers;
确保所有网络接口配置一致,检查:
ip addr
ifconfig -a
某些服务可能在网络完全初始化前启动,可以:
1. 延迟服务启动
2. 使用网络在线目标:
bash
systemctl enable --now systemd-networkd-wait-online.service
通过以上步骤,大多数Linux主机名解析问题应该能够得到解决。