Centos7配置DNS分流

       本次文章为在进行一次项目实施时,基于客户出海的需求而学习到的,简单需求如下:客户引进海外专线,需要将国内流量走向本地出口,国外流量走向海外专线,如果客户端DNS配置为国内DNS,则会造成DNS污染,而配置成国外DNS,则会导致访问国内网站较慢的情况,因此才诞生出本篇文档。

       本篇文章介绍了一种DNS分流的工具,这是在Dnsmasq工具的基础上添加了dnsmasq-china-list来达到以下效果:终端DNS指向这个设备,这个设备内置了中国大陆几乎所有的域名,当访问这些域名时使用国内DNS解析,反之则用国外DNS解析。下面开始进行配置

一、创建Centos7服务器

该创建方法不多赘述CDSN中有较多讲述搭建服务器的教程

二、下载Dnsmasq

1、Dnsmasq 提供 DNS 缓存和 DHCP 服务功能。作为域名解析服务器(DNS),dnsmasq可以通过缓存 DNS 请求来提高对访问过的网址的连接速度。

首先安装后续需要用到的工具

yum install net-tools
yum install traceroute
yum install bind-utils
yum install vim
yum install -y git
yum -y install wget

2、下载Dnsmasq

yum -y install dnsmasq

3、配置Dnsmasq

进入dnsmasq.conf中

vim /etc/dnsmasq.conf

配置文件,添加红框中的文字,由于该文件全被注释掉了,所以可以集中收集后统一进行添加

最终所需添加内容为:

no-resolv 
no-poll
server=8.8.8.8
listen-address=192.168.2.246,127.0.0.1
conf-dir=/etc/dnsmasq.d,.rpmnew,.rpmsave,.rpmorig
cache-size=10240

这几行是dnsmasq的配置文件中的一些选项,它们的含义如下:

  1. no-resolv:表示不使用系统默认的DNS解析文件(/etc/resolv.conf),而是使用dnsmasq自己的DNS解析文件。
  2. no-poll:表示不进行周期性的DNS服务器状态检查。
  3. server=8.8.8.8:指定一个DNS服务器地址为8.8.8.8,即谷歌的公共DNS服务器。
  4. listen-address=192.168.2.246,127.0.0.1:指定dnsmasq监听的地址,这里监听了两个地址:192.168.2.246和127.0.0.1。
  5. conf-dir=/etc/dnsmasq.d,.rpmnew,.rpmsave,.rpmorig:指定dnsmasq的配置文件目录为/etc/dnsmasq.d,以及备份文件目录为.rpmnew、.rpmsave和.rpmorig。
  6. cache-size=10240:设置DNS缓存大小为10240条记录。

其中第四行的192.168.2.246替换成服务器本身的地址

三、拉取dnsmasq-china-list

1、拉取dnsmasq-china-list

wget https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/install.sh

该资源正常需要拥有访问海外的权限才能拉取,或者下载后手动拉到服务器中

2、提高权限

chmod +777 install.sh

3、运行安装文件

sudo ./install.sh

运行前可以进入该脚本中查看一下,看一下红框中的域名是否为223.5.5.5,如果是,就没关系,如果不行就需要修改成这个。

4、

四、关闭防火墙并将dnsmasq设为开机自启

systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl restart dnsmasq
systemctl enable dnsmasq
systemctl start dnsmasq

五、测试网站

dig xxx

使用dig加上网站进行测试

<think>嗯,用户想在CentOS 7配置DNS服务器以便连接到阿里云。首先,我得回顾一下之前用户提供的引用内容。引用3和4提到了在CentOS7和8上安装DNS服务器的步骤,包括使用bind软件包。用户提到阿里云节点,可能需要在云服务器上搭建DNS服务,或者配置本地DNS以连接到阿里云的服务? 首先,确定用户的具体需求。用户可能有两种情况:一是在阿里云的CentOS7服务器配置DNS服务,使其作为DNS服务器;二是配置CentOS7系统的DNS客户端设置,使其能通过阿里云的DNS服务器解析域名。根据问题描述,用户想“连接到阿里云”,可能是指后者,即配置DNS客户端,使用阿里云的公共DNS,如223.5.5.5或223.6.6.6。但引用3和4是关于搭建DNS服务器的,所以也可能用户想自己搭建DNS服务器,比如在阿里云ECS上安装Bind,然后配置其他服务器使用这个自建的DNS。 需要进一步分析用户的问题。用户的问题描述是“配置DNS以访问阿里云”,可能是指让CentOS7系统能够正确解析域名,从而访问阿里云的服务。这时候需要配置系统的DNS解析设置,而不是搭建DNS服务器。但用户引用的内容中提到了搭建DNS服务器,可能用户有更复杂的需求,比如内部网络需要DNS服务来解析阿里云内网域名? 或者用户可能混淆了DNS服务器DNS客户端配置。例如,在阿里云ECS实例中,默认已经配置了阿里云的内网DNS服务器,如10.143.22.116等,用户可能需要修改为公共DNS或者特定的DNS服务器。这时候应该指导用户修改/etc/resolv.conf或者NetworkManager的配置。 根据引用2,CentOS7网络服务由Network管理,而DNS由systemd-resolved管理?不过CentOS7默认可能使用NetworkManager,但传统的配置是通过/etc/resolv.conf和/etc/sysconfig/network-scripts/ifcfg-*文件。需要确认正确的配置方法。 步骤可能包括: 1. 检查当前DNS设置:cat /etc/resolv.conf 2. 修改网络接口的DNS配置,添加阿里云的DNS服务器地址,如223.5.5.5。 3. 重启网络服务使配置生效。 4. 验证DNS解析是否正常,使用nslookup或dig测试。 如果用户是要搭建DNS服务器(如Bind),那么需要安装bind包,配置named.conf,设置区域文件,然后启动服务。但根据用户的问题,可能更倾向于客户端配置,而非服务器搭建。但引用3和4都是关于安装DNS服务器的,所以用户可能实际需要的是在CentOS7上安装Bind作为DNS服务器,以便其他机器使用该服务器解析域名,包括阿里云相关的域名? 此时需要明确用户的需求。可能需要进一步询问,但根据现有信息,应提供两种可能的情况:配置客户端DNS设置,或搭建DNS服务器。但用户问题明确说“配置DNS服务器以便连接到阿里云”,可能是指将系统配置为使用阿里云的DNS服务器,或者搭建自己的DNS服务器,使其能够解析阿里云相关的域名。 假设用户是在阿里云ECS上安装配置DNS服务器(如Bind),以便其他实例使用该DNS服务器。这时步骤包括安装Bind,配置named.conf,设置转发器到阿里云DNS,或者根提示,然后配置客户端使用该DNS服务器。 或者,用户可能只需要在CentOS7系统中设置DNS客户端指向阿里云的公共DNS,以便能够解析外网域名。这种情况下,步骤更简单,直接修改resolv.conf或NetworkManager的配置文件。 需要综合引用中的信息。引用3提到在CentOS7上安装DNS服务器实现正向反向解析,引用4是CentOS8安装DNS。引用2说明CentOS7网络服务是Network,而DNS由systemd-resolved管理,但实际在CentOS7中,systemd-resolved可能不是默认的,传统的配置方式可能更常见。 可能的步骤: 如果是客户端配置: 1. 修改网络接口的DNS配置,添加阿里云DNS。 2. 确保配置持久化,因为重启网络后resolv.conf可能被覆盖。 3. 测试DNS解析。 如果是搭建DNS服务器: 1. 安装Bind。 2. 配置named.conf,设置转发器到阿里云DNS。 3. 启动服务,配置防火墙。 4. 测试DNS查询。 根据用户的问题,可能更偏向于客户端配置,但引用的资料都是关于搭建服务器,所以需要确认。可能需要两种情况的解答,但优先客户端配置,因为连接到阿里云通常只需要设置正确的DNS服务器地址即可。 综上,分步骤回答如何配置CentOS7DNS客户端使用阿里云DNS,以及可选的自建DNS服务器配置。</think>### 分步指南:CentOS 7配置DNS连接阿里云 #### 一、配置DNS客户端(直接使用阿里云公共DNS) 1. **临时修改DNS(重启失效)** 编辑`/etc/resolv.conf`,添加阿里云公共DNS服务器: ```bash nameserver 223.5.5.5 # 阿里云公共DNS IPv4 nameserver 223.6.6.6 # 备用阿里云DNS ``` 2. **永久生效配置(通过NetworkManager)** - 修改对应网卡配置文件(如`/etc/sysconfig/network-scripts/ifcfg-eth0`): ```bash DNS1=223.5.5.5 DNS2=223.6.6.6 ``` - 重启网络服务: ```bash systemctl restart network ``` 3. **验证DNS解析** 使用`nslookup`或`dig`测试: ```bash nslookup www.aliyun.com dig www.aliyun.com ``` --- #### 二、自建DNS服务器(Bind)并指向阿里云DNS[^3][^4] 1. **安装Bind服务** ```bash yum install bind bind-utils -y ``` 2. **配置主文件`/etc/named.conf`** 修改以下内容: ```plaintext options { listen-on port 53 { any; }; # 允许所有IP访问 allow-query { any; }; # 允许所有查询 forwarders { 223.5.5.5; }; # 转发请求到阿里云DNS }; ``` 3. **启动并开放防火墙** ```bash systemctl start named firewall-cmd --add-service=dns --permanent firewall-cmd --reload ``` 4. **客户端指向自建DNS** 在客户端机器的`/etc/resolv.conf`中设置: ```bash nameserver [自建DNS服务器IP] ``` --- ### 关键配置对比 | 场景 | 配置方式 | 适用场景 | |-------------------|---------------------------|----------------------------| | 直接使用阿里云DNS | 修改`resolv.conf`或网卡文件 | 单机快速访问阿里云服务 | | 自建DNS服务器 | 安装Bind并配置转发 | 内网多节点统一DNS管理[^3][^4] | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sd675

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值