tencent cloud

云服务器

动态与公告
产品动态
公共镜像更新动态
操作系统官方停止维护计划
产品公告
产品简介
云服务器概述
产品优势
基本概念
地域和可用区
新手指引
Service Regions and Service Providers
产品计费
计费概述
计费方式
计费项
转换计费方式
购买实例
变配费用说明
欠费说明
快速入门
通过自定义配置购买 Linux 云服务器
通过自定义配置购买 Windows 云服务器
用户指南
操作指南总览
使用限制总览
实例
竞价实例
预留实例
镜像
存储
备份与恢复
网络
安全
密码/密钥
监控与告警
运维管理
便捷功能
迁移服务器
在线迁移
迁移咨询
故障处理
无法登录云服务器问题处理思路
Windows 实例登录相关故障
Linux 实例登录相关故障
其他实例登录相关故障
实例运行故障
Linux 实例内存故障
网络故障
实践教程
云服务器选型建议
搭建环境
搭建网站
搭建应用
搭建可视化界面
本地文件上传到云服务器
网络性能测试
其他实践教程
API 文档
History
Introduction
API Category
Making API Requests
Region APIs
Instance APIs
Cloud Hosting Cluster APIs
Image APIs
Instance Launch Template APIs
Placement Group APIs
Key APIs
Security Group APIs
Network APIs
Data Types
Error Codes
安全与合规
访问管理
网络
常见问题
地域和可用区相关
计费相关
实例相关
存储相关
镜像相关
服务器迁移相关
网络相关
安全相关
操作系统相关
运维和监控相关
访问管理相关
NTP 服务相关
应用场景相关
服务协议
CVM Service Level Agreements
Red Hat Enterprise Linux 镜像服务协议
Public IP Service Level Agreement
词汇表
文档云服务器实践教程其他实践教程在 Linux 实例中自定义修改 DNS 配置

在 Linux 实例中自定义修改 DNS 配置

PDF
聚焦模式
字号
最后更新时间: 2024-12-23 16:02:38
要在 Linux 实例中自定义修改 DNS 配置,需要根据不同版本和网络管理方式进行相应的调整。
注意:
以下操作涉及修改配置文件内容,建议您在修改配置文件之前,先进行备份。

NetworkManager 方式管理网络

如何判断是 NetworkManager 在管理网络

方法一:查看 NetworkManager 服务状态。
sudo systemctl status NetworkManager
如果输出显示 NetworkManager 服务正在运行,则表示 NetworkManager 正在管理网络。
示例输出:
● NetworkManager.service - Network Manager Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2023-11-21 12:34:56 UTC; 1 day 12h ago
方法二:检查网络接口配置文件。
1. 查看网络接口配置文件:传统的网络接口配置文件位于 /etc/sysconfig/network-scripts/ 目录下,文件名通常为 ifcfg-<interface-name>。
2. 使用 NetworkManager 管理的接口:如果接口是由 NetworkManager 管理的,配置文件中通常会有一个 NM_CONTROLLED 参数,值为yes
NM_CONTROLLED=yes
3. 使用传统网络脚本管理的接口:如果接口是由传统网络脚本管理的,配置文件中通常会有一个 NM_CONTROLLED 参数,值为no
NM_CONTROLLED=no

NetworkManager 配置自定义 DNS

TencentOS Server 3.X/TencentOS Server 4.X

如果系统默认通过 NetworkManager 管理网络,并且仅在 /etc/sysconfig/network 文件中设置了 PEERDNS=no,那么在涉及重启的操作中,自定义的 DNS 设置将会被覆盖。
推荐您修改 /etc/NetworkManager/conf.d/90-dns-none.conf,该方案在重启或者切换子网切换 VPC 几种场景下经验证均不会被覆盖。
/etc/NetworkManager/conf.d/90-dns-none.conf增加如下配置:
[main]
dns=none

非 NetworkManager 方式管理网络

传统的网络脚本来管理网络配置

RHEL/CentOS7

1. 系统通过使用传统的网络脚本来管理网络配置。这些脚本存放在 /etc/sysconfig/network-scripts/ 目录中,而 DNS 配置则位于 /etc/resolv.conf 文件中。为了防止 /etc/resolv.conf 文件被 DHCP 获取的 DNS IP 地址覆盖,您需要修改 /etc/sysconfig/network 文件并添加以下一行内容:
PEERDNS=no
2. 然后重启网络服务生效。

TencentOS Server 2.X

TencentOS Server 2.X 系列默认使用 network 来管理网络。如果 TencentOS Server 2.X 需要切换子网或者切换 VPC,建议先安装 NetworkManager 软件包并改用 NetworkManager 来管理网络。如果不采用 NetworkManager 管理网络您可以锁定文件编辑权限。
采用
NetworkManager
管理网络
1.1 安装 NetworkManager。
yum install NetworkManager
1.2 /etc/NetworkManager/conf.d/90-dns-none.conf 文件中添加如下两行:
[main]
dns=none
采用锁定文件编辑权限,避免 resolv.conf 被覆盖。
执行如下命令:
chattr +i /etc/resolv.conf

Systemd-networkd 管理网络配置

Ubuntu 18/20/22

目前常见的发行版本大多使用的是 NetworkManager 服务进行网络管理,修改参见 NetworkManager 管理网络即可。但是从 Ubuntu 18系统开始,网络服务类型为 systemd-networkd,以下是在 Ubuntu 18、Ubuntu 20系统中自定义配置 DNS 的操作步骤:
1. 编辑 /etc/cloud/cloud.cfg,关闭 cloud-init 中的自动配置网络参数,避免网卡配置文件内容被覆盖。
network:
config: disabled
2. 编辑 /etc/netplan/50-cloud-init.yaml配置文件,增加自定义 DNS 配置信息。
nameservers:
addresses: [172.10.XX.XX,172.6.XX.XX]
修改后效果如下:
network:
version: 2
ethernets:
eth0:
dhcp4: true
match:
macaddress: 00:11:3e:13:42:7b
set-name: eth0
nameservers:
addresses: [172.10.XX.XX,172.6.XX.XX]
3. 执行如下命令使服务生效。
netplan apply
4. 执行以下命令建立 /run/systemd/resolve/resolv.conf 文件的软链接,避免因为 /etc/resolv.conf 配置文件内容更新而导致配置还原。
sudo ln -snf /run/systemd/resolve/resolv.conf /etc/resolv.conf

Networking 管理网络配置

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 的操作步骤:
1. 编辑 /etc/network/interfaces 网卡配置文件。
某些高版本系统网卡配置文件中若配置为 source /etc/network/interfaces.d/*,则需在文件 /etc/network/interfaces.d/50-cloud-init.cfg 中进行相应修改。编辑 /etc/network/interfaces 添加如下信息:
dns-nameservers [172.10.XX.XX 172.6.XX.XX]
修改后效果如下:
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
dns-nameservers [172.10.XX.XX 172.6.XX.XX]
2. 重启网络使服务生效。
systemctl restart networking.service

Wicked 网络管理工具

SUSE Linux 12/SUSE Linux 15/OpenSUSE 15

目前常见的发行版大多使用的是 NetworkManager 服务进行网络管理,但是从 SUSE Linux 12开始,SUSE Linux 使用了 Wicked 网络管理工具进行网络管理。以下是在SUSE Linux 12、SUSE Linux 15、OpenSUSE 15系统中自定义配置 DNS 的操作步骤:
1. 编辑 /etc/resolv.conf 配置文件。
nameserver [223.1.XX.XX]
nameserver [223.2.XX.XX]
2. 编辑 /etc/sysconfig/network/config 配置文件,将 NETCONFIG_MODULES_ORDER 参数的值删除,保留双引号符号(""),如下所示。
NETCONFIG_MODULES_ORDER=""
3. 重启网络使服务生效。
service network restart
注意:
在 Linux 系统中,如果 /etc/sysconfig/network 文件仅设置了 PEERDNS=no,在切换 VPC 和子网的场景中,自定义 DNS 配置可能会被覆盖。
对于非 DHCP 环境的设备,可以参考官方文档中关于 DNS 初始化(非 DHCP 场景)的部分进行处理。详细信息请参见:Cloud-Init 和 Cloudbase-Init 问题

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈