内容简介:本文风哥教程参考Linux官方文档、Red Hat Enterprise Linux官方文档、Ansible Automation Platform官方文档、Docker官方文档、Kubernetes官方文档和Podman官方文档等内容,详细介绍了相关技术的配置和使用方法。
本文档详细介绍/etc/hosts文件的配置和
风哥提示:
使用,包括本地域名解析、主机名映射、故障排查等。
Part01-查看hosts文件
1.1 查看默认hosts文件
$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
# 查看hosts文件权限
$ ls -la /etc/hosts
-rw-r–r–. 1 root root 234 Jan 1 00:00:00 /etc/hosts
# 查看hosts文件详细信息
$ stat /etc/hosts
File: /etc/hosts
Size: 234 Blocks: 8 IO Block: 4096 regular file
Access: (0644/-rw-r–r–) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:net_conf_t:s0
Access: 2026-04-03 14:00:00.000000000 +0800
Modify: 2026-01-01 00:00:00.000000000 +0800
Change: 2026-01-01 00:00:00.000000000 +0800
Birth: 2026-01-01 00:00:00.000000000 +0800
Part02-配置本地解析
2.1 添加主机名映射
$ sudo cp /etc/hosts /etc/hosts.bak
# 编辑hosts文件
$ sudo vi /etc/hosts
# 添加以下内容
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain4学习交流加群风哥微信: itpux-com
# Local Network
192.168.1.100 webserver01 webserver01.fgedu.net.cn
192.168.1.101 webserver02 webserver02.fgedu.net.cn
192.168.1.102 webserver03 webserver03.fgedu.net.cn
192.168.1.103 dbserver01 dbserver01.fgedu.net.cn
192.168.1.104 dbserver02 dbserver02.fgedu.net.cn
# 验证hosts文件
$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain4
192.168.1.100 webserver01 webserver01.fgedu.net.cn
192.168.1.101 webserver02 webserver02.fgedu.net.cn
192.168.1.102 webserver03 webserver03.fgedu.net.cn
192.168.1.103 dbserver01 dbserver01.fgedu.net.cn
192.168.1.104 dbserver02 dbserver02.fgedu.net.cn
# 测试本地解析
$ ping -c 2 webserver01
PING webserver01 (192.168.1.100) 56(84) bytes of data.
64 bytes from webserver01 (192.168.1.100): icmp_seq=1 ttl=64 time=0.123 ms
64 bytes from webserver01 (192.168.1.100): icmp_seq=2 ttl=64 time=0.124 ms
— webserver01 ping statistics —
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.123/0.123/0.124/0.000 ms
$ ping -c 2 webserver01.fgedu.net.cn
PING webserver01.fgedu.net.cn (192.168.1.100) 56(84) bytes of data.
64 bytes from webserver01.fgedu.net.cn (192.168.1.100): icmp_seq=1 ttl=64 time=0.123 ms
64 bytes from webserver01.fgedu.net.cn (192.168.1.100): icmp_seq=2 ttl=64 time=0.124 ms
— webserver01.fgedu.net.cn ping statistics —
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.123/0.123/0.124/0.000 ms
Part03-本地解析优先级
3.1 测试解析优先级
$ cat /etc/nsswitch.conf | grep hosts
hosts: files dns
# files优先于dns,即先查询/etc/hosts,再查询DNS
# 在hosts文件中添加一个不存在的域名映射
$ sudo sh -c ‘echo “192.168.1.200 test.fgedu.net.cn” >> /etc/hosts’
# 测试解析
$ ping -c 1 test.fgedu.net.cn
PING test.fgedu.net.cn (192.168.1.200) 56(84) bytes of data.
64 bytes from test.fgedu.net.cn (192.168.1.200): icmp_seq=1 ttl=64 time=0.123 ms
— test.fgedu.net.cn ping statistics —
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.123/0.1from PG视频:www.itpux.com23/0.123/0.000 ms
# 使用nslookup查询DNS(不查询hosts文件)
$ nslookup test.fgedu.net.cn
Server: 192.168.1.1
Address: 192.168.1.1#53
** server can’t find test.fgedu.net.cn: NXDOMAIN
# 结论:ping命令使用hosts文件解析,nslookup直接查询DNS
Part04-批量配置
4.1 批量添加主机名映射
$ cat > add_hosts.sh << 'EOF' #!/bin/bash # 主机名映射列表 hosts=( "192.168.1.100:webserver01:webserver01.fgedu.net.cn" "192.168.1.101:webserver02:webserver02.fgedu.net.cn" "192.168.1.102:webserver03:webserver03.fgedu.net.cn" "192.168.1.103:dbserver01:dbserver01.fgedu.net.cn" "192.168.1.104:dbserver02:dbserver02.fgedu.net.cn" ) # 备份原文件 sudo cp /etc/hosts /etc/hosts.bak.$(date +%Y%m%d%H%M%S) # 批量添加主机名映射 for host in "${hosts[@]}"; do ip=$(echo $host | cut -d: -f1) hostname1=$(echo $host | cut -d: -f2) hostname2=$(echo $host | cut -d: -f3) echo "Adding $ip $hostname1 $hostname2" sudo sh -c "echo '$ip $hostname1 $hostname2' >> /etc/hosts”
done
echo “All host mappings added”
# 验证hosts文件
echo -e “\nCurrent /etc/hosts:”
cat /etc/hosts
EOF
# 赋予执行权限
$ chmod +x add_hosts.sh
# 执行脚本
$ ./add_hosts.sh
Adding 192.168.1.100 webserver01 webserver01.fgedu.net.cn
Adding 192.168.1.101 webserver02 webserver02.fgedu.net.cn
Adding 192.168.1.102 webse学习交流加群风哥QQ113257174rver03 webserver03.fgedu.net.cn
Adding 192.168.1.103 dbserver01 dbserver01.fgedu.net.cn
Adding 192.168.1.104 dbserver02 dbserver02.fgedu.net.cn
All host mappings added
Current /etc/hosts:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain4
192.168.1.100 webserver01 webserver01.fgedu.net.cn
192.168.1.101 webserver02 webserver02.fgedu.net.cn
192.168.1.102 webserver03 webserver03.fgedu.net.cn
192.168.1.103 dbserver01 dbserver01.fgedu.net.cn
192.168.1.104 dbserver02 dbserver02.fgedu.net.cn
1. 修改hosts文件前先备份
2. 使用本地解析提高访问速度
3. hosts文件格式:IP 主机名 别名
4. 注释行使用#符号
5. 修改后立即生效,无需重启服务
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
