如何在Linux中自定义配置DNS
  

cyq 111

{{ttag.title}}
Linux系统存在不同的发行版本,不同发行版本中自定义配置DNS的方法不同,请根据现场环境匹配下列发行版本的操作命令。DNS配置完成之后请完成步骤二操作,避免因为重启系统配置还原。

    Alibaba Cloud Linux

        Alibaba Cloud Linux 2/3

    Ubuntu

        Ubuntu 16

        Ubuntu 18/20/22

    CentOS

        CentOS 6/7/8

    Debian

        Debian 9/10/11

    SUSE Linux

        SUSE Linux 12/15

    OpenSUSE

        OpenSUSE 15

    AlmaLinux

        AlmaLinux8/9

    Rocky Linux

        Rocky Linux 8/9

    CentosStream

        CentosStream 8/9

    Fedora

        Fedora 37

Alibaba Cloud Linux 2/3

在Alibaba Cloud Linux 2/3实例中自定义配置DNS的方法,请参见如何在Alibaba Cloud Linux 2实例中通过“/etc/resolv.conf”文件自定义配置DNS。
Ubuntu 18/20/22

目前常见的发行版大多使用的是NetworkManager服务进行网络管理,但是从Ubuntu 18系统开始网络服务类型为systemd-networkd,以下是在Ubuntu 18、Ubuntu 20系统中自定义配置DNS的操作步骤:
说明

以下操作涉及配置文件内容的修改,修改文件之前,请先进行备份。

    执行以下命令,编辑/etc/cloud/cloud.cfg配置文件。

    vim /etc/cloud/cloud.cfg

        按i键切换至编辑模式,在# Example datasource config内容上增加以下配置,关闭cloud-init中的自动配置网络的参数,避免网卡配置文件内容被覆盖。

        network:
          config: disabled

        系统显示类似如下,表示修改成功。 Dingtalk_20201029153704.jpg

        修改完成后,按下Esc键后,输入:wq并回车以保存并关闭配置文件。

    执行以下命令,编辑/etc/netplan/50-cloud-init.yaml配置文件。

    vim /etc/netplan/50-cloud-init.yaml

        按i键切换至编辑模式,在文件底部添加以下配置,自定义配置DNS信息。

        nameservers:
            addresses:[223.5.XX.XX,223.6.XX.XX]

        修改之后的内容如下所示。

        network:
            version: 2
            ethernets:
                eth0:
                    dhcp4: true
                    match:
                        macaddress: 00:16:3e:13:42:71
                    set-name: eth0
                    nameservers:
                        addresses: [223.5.XX.XX,223.6.XX.XX]

        说明

            eth0:配置的网卡名称,本文以eth0网卡为例,用户可根据实际环境修改。

            dhcp4:ECS实例的网络配置默认为DHCP模式。

            match:配置的MAC地址,本文以00:16:3e:13:42:71为例,用户可根据实际环境修改。

            nameservers:自定义配置的DNS信息,本文以默认DNS IP地址223.5.XX.XX和223.6.XX.XX为例,请按照实际情况填写您自定义的DNS IP地址。

        修改完成后,按下Esc键后,输入:wq并回车以保存并关闭配置文件。

    执行以下命令,应用网卡配置。

    netplan apply

    执行以下命令,建立/run/systemd/resolve/resolv.conf文件的软链接,避免因为/etc/resolv.conf配置文件内容更新而导致配置还原。

    sudo ln -snf /run/systemd/resolve/resolv.conf /etc/resolv.conf

CentOS 6/7/8

CentOS系统中,网络配置和DNS配置被两个不同的服务进行管理,分别维护比较麻烦。

    网络服务

        CentOS 6和CentOS 7系统中的网络服务为Network。

        CentOS 8中的网络服务为NetworkManager.service。

    DNS服务截止到CentOS 8系统,目前均使用systemd-resolved作为管理DNS的服务。

为了便于维护,您可以参考下列步骤,统一通过网络服务来管理网络和DNS配置,即DNS也配置在网卡配置文件中。
说明

以下操作涉及配置文件内容的修改,修改文件之前,请先进行备份。

    请参见Ubuntu 18/20/22章节的步骤1,关闭cloud-init中的自动配置网络的参数,避免网卡配置文件内容被覆盖。

    执行以下命令,编辑/etc/sysconfig/network-scripts/ifcfg-eth0配置文件。

    vim /etc/sysconfig/network-scripts/ifcfg-eth0

        按i键切换至编辑模式,在文件底部添加以下配置,添加以下自定义DNS配置。

        PEERDNS=no
        DNS1=[223.5.XX.XX]
        DNS2=[223.6.XX.XX]

        修改之后的内容如下所示。

        BOOTPROTO=dhcp
        DEVICE=eth0
        ONBOOT=yes
        STARTMODE=auto
        TYPE=Ethernet
        USERCTL=no
        PEERDNS=no
        DNS1=[223.5.XX.XX]
        DNS2=[223.6.XX.XX]

        说明

            PEERDNS=no:表示不使用DHCP提供的DNS。

            DNS1、DNS2:自定义配置的DNS信息,本文以默认DNS IP地址223.5.XX.XX和223.6.XX.XX为例,请按照实际情况填写您自定义的DNS IP地址。

        修改完成后,按下Esc键后,输入:wq并回车以保存并关闭配置文件。

    由于CentOS 6、CentOS 7、CentOS 8系统中重启网络服务的操作命令不同,请根据现场情况,选择以下对应的步骤,重启网络服务。

        CentOS 6:service network restart。

        CentOS 7:systemctl restart network。

        CentOS 8:

            重新加载所有网卡配置nmcli c reload。

            激活网卡nmcli d connect eth0。

Debian 9/Debian 10/Debian 11/Ubuntu 16

Debian9、Debian 10、Debian 11和Ubuntu 16系统使用的网络服务相同为networking,以下是在Debian 9、Debian 10、Debian 11和Ubuntu 16系统中自定义配置DNS的操作步骤:
说明

以下操作涉及配置文件内容的修改,修改文件之前,请先进行备份。

    执行以下命令,编辑/etc/network/interfaces网卡配置文件。

    某些高版本系统网卡配置文件中若配置为 source /etc/network/interfaces.d/*,则需在文件 /etc/network/interfaces.d/50-cloud-init.cfg 中进行相应修改。

    vim /etc/network/interfaces

        按i键切换至编辑模式,在文件底部添加以下配置,自定义配置DNS信息。

        dns-nameservers [223.5.XX.XX 223.6.XX.XX]

        修改之后的内容如下所示。

        auto lo
        iface lo inet loopback

        auto eth0
        iface eth0 inet dhcp
        dns-nameservers [223.5.XX.XX 223.6.XX.XX]

        说明

            auto eth0:配置的网卡名称,本文以eth0网卡为例,现场以实际环境为准。

            iface eth0 inet dhcp:ECS实例的网络配置默认为DHCP模式。

            dns-nameservers:自定义配置的DNS信息,本文以默认DNS IP地址223.5.XX.XX和223.6.XX.XX为例,请按照实际情况填写您自定义的DNS IP地址。

        修改完成后,按下Esc键后,输入:wq并回车以保存并关闭配置文件。

    然后执行以下命令,重启网络服务。

    systemctl restart networking.service

SUSE Linux 12/SUSE Linux 15/OpenSUSE 15

目前常见的发行版大多使用的是NetworkManager服务进行网络管理,但是从SUSE Linux 12开始,SUSE Linux使用了Wicked网络管理工具进行网络管理。以下是在SUSE Linux 12、SUSE Linux 15、OpenSUSE 15系统中自定义配置DNS的操作步骤:

    执行以下命令,编辑/etc/resolv.conf配置文件。

    vim /etc/resolv.conf

        按i键切换至编辑模式,将nameserver参数的值修改为您自定义的DNS IP地址。

        nameserver [223.5.XX.XX]
        nameserver [223.6.XX.XX]

        说明

        nameserver:自定义配置的DNS信息,本文以默认DNS IP地址223.5.XX.XX和223.6.XX.XX为例,请按照实际情况填写您自定义的DNS IP地址。

        修改完成后,按下Esc键后,输入:wq并回车以保存并关闭配置文件。

    执行以下命令,编辑/etc/sysconfig/network/config配置文件。

    vim /etc/sysconfig/network/config

        按i键切换至编辑模式,将NETCONFIG_MODULES_ORDER参数的值删除,保留双引号符号(""),如下所示。

        NETCONFIG_MODULES_ORDER=""

        修改完成后,按下Esc键后,输入:wq并回车以保存并关闭配置文件。

    执行以下命令,重启网络服务。

    service network restart

AlmaLinux/Rocky Linux/CentosStream/Fedora

AlmaLinux8/9、Rocky Linux 8/9、CentosStream 8/9、Fedora 37 系统的DNS配置方式和Alibaba Cloud Linux 3系统一样,请参考如何在Alibaba Cloud Linux实例中通过“/etc/resolv.conf”文件自定义配置DNS
(可选)步骤二:锁定文件

配置完成DNS后,可通过重启服务器的方式检测是否配置成功。由于部分镜像上安装了高版本的cloud-init,重启服务器cloud-init会自动重置网络配置,您可以参考以下方式锁定配置文件,避免因为重启系统而导致配置文件内容重置。
说明

如果想了解关于cloud-init的更多信息,请参见cloud-init的官方文档。

    锁定配置文件: 以/etc/resolv.conf文件为例,执行以下命令,将该文件锁定。

    chattr +i /etc/resolv.conf

    解锁配置文件:

        如果您需要再次对锁定文件进行修改,则执行以下命令,解锁文件。

        chattr -i /etc/resolv.conf

        执行以下命令,确认域名可以正常解析。

        nslookup <$Domain>

        说明

        <$Domain>为您需要测试的域名,请根据实际情况进行修改。

打赏鼓励作者,期待更多好文!

打赏
2人已打赏

一个无趣的人 发表于 2024-5-11 14:08
  
多谢分享,有助于工作。
এ塔铃独语别黄昏এ 发表于 2024-5-12 20:44
  

多谢分享,有助于工作。
发表新帖
热门标签
全部标签>
每日一问
2024年技术争霸赛
安装部署配置
干货满满
技术盲盒
技术笔记
产品连连看
2023技术争霸赛专题
每周精选
功能体验
信服课堂视频
新版本体验
秒懂零信任
GIF动图学习
运维工具
技术晨报
自助服务平台操作指引
功能咨询
通用技术
技术咨询
问题分析处理
标准化排查
纪元平台
排障笔记本
华北区交付直播
畅聊IT
专家问答
技术圆桌
测试报告
每日一记
用户认证
原创分享
解决方案
VPN 对接
项目案例
SDP百科
地址转换
存储
技术争霸赛
深信服技术支持平台
卧龙计划
北京区每日一练
答题自测
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
日志审计
流量管理
云计算知识
sangfor周刊
SANGFOR资讯
专家分享
技术顾问
信服故事
终端接入
授权
设备维护
资源访问
虚拟机
迁移
加速技术
产品预警公告
玩转零信任
信服圈儿
S豆商城资讯
「智能机器人」
追光者计划
社区帮助指南
答题榜单公布
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV

本版达人

新手89785...

本周建议达人

YangZhe...

本周分享达人