Linux环境下配置域名主要分为本地测试域名解析(修改hosts文件)、服务器主机名设置、DNS服务器部署(BIND)三类场景,以下是详细步骤:
适用于单机或局域网内快速将域名映射到IP,无需修改DNS服务器配置。
nano或vi)打开/etc/hosts文件,添加IP地址 域名格式的映射(可添加多条)。sudo nano /etc/hosts
示例内容:192.168.1.100 example.com
192.168.1.100 www.example.com
ping命令检查域名是否解析到正确IP。ping example.com
若返回结果中的IP与配置一致,则说明生效。用于修改服务器自身的主机名(通常与域名一致,提升可识别性)。
sudo hostname your_domain.com
hostnamectl命令(推荐,适用于大多数Linux发行版):sudo hostnamectl set-hostname your_domain.com
/etc/hostname文件(部分系统需同步修改/etc/sysconfig/network,如CentOS 6):sudo nano /etc/hostname
删除原有内容,写入新主机名后保存。sudo systemctl restart systemd-hostnamed # systemd系统
# 或
sudo systemctl restart network # 旧版系统(如CentOS 6)
hostname # 查看当前主机名
ping your_domain.com # 检查主机名是否能解析到本地IP
适用于需要为内部网络或对外提供域名解析服务的场景(如搭建权威DNS服务器)。
sudo apt update && sudo apt install bind9 bind9utils bind9-doc -y
sudo yum install bind bind-utils -y
named.conf.options文件(路径因发行版而异,如/etc/bind/named.conf.options或/etc/named.conf),设置监听地址、允许查询范围及转发规则。sudo nano /etc/bind/named.conf.options
示例配置:options {
directory "/var/cache/bind";
listen-on port 53 { any; }; # 监听所有IP的53端口
allow-query { any; }; # 允许所有客户端查询
forwarders { # 转发未解析的查询到上游DNS
8.8.8.8;
8.8.4.4;
};
forward only; # 仅转发,不自行解析
};
named.conf.local文件(如/etc/bind/named.conf.local),添加正向/反向解析区域。sudo nano /etc/bind/named.conf.local
示例(正向解析example.com):zone "example.com" {
type master; # 主DNS服务器
file "/etc/bind/db.example.com"; # 区域数据文件路径
};
/etc/bind/db.example.com),配置SOA、NS、A等记录。sudo nano /etc/bind/db.example.com
示例内容:$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2025111001 ; Serial(版本号,每次修改需递增)
3600 ; Refresh(刷新时间,单位:秒)
1800 ; Retry(重试时间)
1209600 ; Expire(过期时间)
86400 ) ; Minimum TTL(最小TTL)
@ IN NS ns1.example.com.
ns1 IN A 192.168.1.100
www IN A 192.168.1.100
named-checkconf(检查主配置文件)和named-checkzone(检查区域文件)命令,避免配置错误。sudo named-checkconf
sudo named-checkzone example.com /etc/bind/db.example.com
sudo systemctl start bind9 # Debian/Ubuntu
sudo systemctl start named # CentOS/RHEL
sudo systemctl enable bind9 # 设置开机自启
sudo ufw allow 53/tcp # Ubuntu(ufw)
sudo firewall-cmd --add-service=dns --permanent # CentOS(firewalld)
sudo firewall-cmd --reload
dig或nslookup命令检查域名解析结果。dig @localhost example.com A +short
nslookup www.example.com 127.0.0.1
以上步骤覆盖了Linux环境下域名配置的主要场景,可根据实际需求选择对应操作。需注意,修改DNS服务器配置时需谨慎,错误的配置可能导致网络不可用,建议在测试环境验证后再应用于生产环境。