linux 如何设置域名解析

Linux中,可通过编辑/etc/resolv.conf文件设置域名解析,添加nameserver

Linux系统中,域名解析的设置至关重要,它决定了系统如何将域名转换为对应的IP地址,以下是详细的设置方法及相关说明:

linux 如何设置域名解析

通过/etc/resolv.conf文件设置DNS服务器(简单快捷方式)

步骤 示例 说明
打开文件 sudo vi /etc/resolv.conf 使用文本编辑器(如vinano)打开文件 该文件定义系统的DNS服务器地址,优先级由上至下
添加DNS服务器 nameserver 8.8.8.8
nameserver 114.114.114.114
每行一个DNS服务器IP 可添加多个服务器作为备用,系统按顺序查询
保存并退出 ESC键后输入:wqvi)或Ctrl+Onano 保存修改并退出编辑器 修改立即生效,无需重启服务

注意事项

  • 某些发行版(如Ubuntu)中,/etc/resolv.conf可能由NetworkManagersystemd-resolved管理,直接修改会被覆盖,此时需通过nmclisystemd配置。
  • 临时测试可用命令:nmcli dev set eth0 ipv4.dns "8.8.8.8 114.114.114.114"(替换eth0为实际网络接口)。

配置本地DNS服务(BIND/named)(高级场景)

安装BIND

  • Debian/Ubuntu
    sudo apt-get update
    sudo apt-get install bind9 bind9utils bind9-doc
  • CentOS/RHEL
    sudo yum install bind bind-utils

配置主配置文件

编辑/etc/bind/named.conf(Debian)或/etc/named.conf(CentOS),定义正向和反向解析区域:

options {
    listen-on port 53 { 192.168.1.1; };  // 监听IP
    directory "/var/named";              // 数据文件路径
};
// 正向解析区
zone "example.com" IN {
    type master;
    file "db.example.com";              // 区域文件路径
};
// 反向解析区
zone "1.168.192.in-addr.arpa" IN {
    type master;
    file "db.192";                     // 反向区域文件路径
};

创建区域文件

  • 正向区域文件/etc/bind/zones/db.example.com):
    $TTL 86400
    @       IN SOA ns1.example.com. admin.example.com. (
                                    2023010101 ; Serial
                                    3600       ; Refresh
                                    1800       ; Retry
                                    604800     ; Expire
                                    86400      ; Minimum TTL
                                )
            IN NS      ns1.example.com.
            IN NS      ns2.example.com.
    ns1     IN A       192.168.1.1
    ns2     IN A       192.168.1.2
    www     IN A       192.168.1.100
  • 反向区域文件/etc/bind/zones/db.192):
    $TTL 86400
    @       IN SOA ns1.example.com. admin.example.com. (
                                    2023010101 ; Serial
                                    3600       ; Refresh
                                    1800       ; Retry
                                    604800     ; Expire
                                    86400      ; Minimum TTL
                                )
            IN NS      ns1.example.com.
    10      IN PTR     ns1.example.com.
    20      IN PTR     www.example.com.

检查配置并重启服务

sudo named-checkconf           # 检查主配置文件语法
sudo named-checkzone example.com /etc/bind/zones/db.example.com  # 检查正向区域文件
sudo named-checkzone 1.168.192.in-addr.arpa /etc/bind/zones/db.192  # 检查反向区域文件
sudo systemctl restart bind9   # 重启BIND服务

开放防火墙端口

sudo ufw allow 53/tcp
sudo ufw allow 53/udp

测试域名解析

使用dignslookup命令验证配置:

linux 如何设置域名解析

dig @localhost example.com        # 测试正向解析
dig @localhost -x 192.168.1.100   # 测试反向解析

常见问题与解决

问题 原因 解决方法
DNS解析失败 配置文件语法错误
防火墙未开放53端口
网络连接问题
使用named-checkconfnamed-checkzone检查配置
执行sudo ufw allow 53开放端口
检查服务器网络连通性(ping测试)
解析结果不正确 区域文件记录错误
缓存未刷新
检查区域文件中的IP和域名映射
执行rndc flush清除缓存(需安装rndc工具)

FAQs

Q1:如何临时更改DNS服务器?
A1:使用nmcli命令(仅当前会话有效):

sudo nmcli dev set eth0 ipv4.dns "8.8.8.8 114.114.114.114"

替换eth0为实际网络接口名称。

Q2:BIND配置后无法解析外部域名怎么办?
A2:需在named.conf中添加“转发器”(Forwarder)配置,允许BIND向外部DNS服务器查询:

linux 如何设置域名解析

options {
    forwarders { 8.8.8.8; 114.114.114.114; };  # 指定上游DNS服务器

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/54363.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年7月11日 11:19
下一篇 2025年7月11日 11:25

相关推荐

  • Linux磁盘如何快速彻底占满

    使用dd命令创建大文件:dd if=/dev/zero of=/path/to/fillfile bs=1M count=1000(调整count值直到写满),或使用fallocate快速预分配空间:fallocate -l 10G /path/to/bigfile,完成后及时删除测试文件释放空间。

    2025年7月4日
    000
  • Linux如何开启自动分配IP?

    安装isc-dhcp-server包,编辑/etc/dhcp/dhcpd.conf配置子网和地址池,在/etc/default/isc-dhcp-server指定监听接口,最后启动服务并设置开机自启。

    2025年7月3日
    100
  • 怎么使用Linux软件,Linux软件怎么用

    在Linux中调用软件主要通过终端输入命令(如“软件名”)或图形界面菜单启动,需确保软件已安装且路径正确。

    2025年7月1日
    000
  • Linux FTP端口修改指南

    修改Linux FTP端口需编辑FTP服务配置文件(如/etc/vsftpd.conf),将listen_port改为新端口号,保存后重启服务(如systemctl restart vsftpd),并在防火墙放行新端口(如firewall-cmd –add-port=新端口/tcp –permanent)。

    2025年6月13日
    100
  • Linux快速创建用户教程

    在Linux中使用useradd命令创建用户(如useradd username),随后用passwd username为其设置密码,最后可通过id username验证用户是否创建成功。

    2025年6月19日
    100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN