当前位置: 首页 > news >正文

CentOS 7 安装 dnsmasq 解决nginx无法指定dns的问题

CentOS 7 安装 dnsmasq 解决nginx无法指定dns的问题

1. 安装 dnsmasq

yum install dnsmasq -y

如果无法安装没有网络可以下载本地的包
wget http://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.91.tar.xz

tar -xvf dnsmasq-2.91.tar.xz
cd dnsmasq-2.91
make
make install
cp dnsmasq.conf.example /etc/dnsmasq.conf

启动为
/usr/local/sbin/dnsmasq -C /etc/dnsmasq.conf

2. 配置 dnsmasq

编辑配置文件:

nano /etc/dnsmasq.conf

添加/修改以下内容(取消注释或新增):

listen-address=127.0.0.1
port=53
no-resolv
no-poll# 上游(步骤1+2)
all-servers
server=114.114.114.114#53
server=223.5.5.5#53
server=119.29.29.29#53
server=8.8.8.8#53
server=1.1.1.1#53# 缓存(步骤3)
cache-size=20000
min-cache-ttl=600
max-cache-ttl=3600
dns-forward-max=1500# 安全/杂项
domain-needed
bogus-priv
filter-AAAA
log-async=50

3. 启动并设置开机自启

systemctl start dnsmasq
systemctl enable dnsmasq

4. 配置 Nginx 使用本地 DNS

编辑 Nginx 配置文件(通常在 /etc/nginx/nginx.conf):

resolver 127.0.0.1 valid=300s;
resolver_timeout 5s;

可手动安装 下载源码
官网地址https://thekelleys.org.uk/
传输dnsmasq-2.91.tar.xz到服务器 执行解压
tar -xvf dnsmasq-2.91.tar.xz

cd到解压的目录
cd dnsmasq-2.91

执行安装
make

执行添加
make install

然后添加配置
vi /etc/dnsmasq.conf

下面的为配置 不想手动cp可以从我发的包里面直接粘过去

listen-address=127.0.0.1
port=53
no-resolv
no-poll# 国内域名白名单(步骤1)
conf-dir=/etc/dnsmasq.d# 上游(步骤2+3)
all-servers
server=114.114.114.114#53
server=223.5.5.5#53
server=119.29.29.29#53
server=8.8.8.8#53
server=1.1.1.1#53# 缓存(步骤4)
cache-size=20000
min-cache-ttl=600
max-cache-ttl=3600
dns-forward-max=1500# 安全/杂项
domain-needed
bogus-priv
filter-AAAA
log-async=50

然后添加到systemctl 里面

echo -e "[Unit]
Description=dnsmasq servier
After=network.target[Service]
ExecStart=/usr/local/sbin/dnsmasq -C /etc/dnsmasq.conf --keep-in-foreground
Restart=always[Install]
WantedBy=multi-user.target" > /etc/systemd/system/dnsmasq.service

执行刷新

systemctl daemon-reload

启动服务:

systemctl start dnsmasq

关闭

systemctl stop dnsmasq

设置开机自动启动:

systemctl enable dnsmasq

5. 验证配置

  1. 测试 dnsmasq 是否正常工作

    dig @127.0.0.1 www.baidu.com
    

    若能正常解析,说明 dnsmasq 已生效。

  2. 检查 dnsmasq 状态

    systemctl status dnsmasq
    

    确保服务处于 active (running) 状态。

6. 故障排查(可选)

若遇到问题,可尝试:

  • 查看日志
    journalctl -u dnsmasq
    
  • 检查端口占用
    netstat -tulpn | grep :53
    
    确保 dnsmasq 在监听 53 端口。

配置效果

配置完成后,Nginx 将通过本地 dnsmasq 进行域名解析,而 dnsmasq 会:

  1. 自动选择响应最快的上游 DNS 服务器;
  2. 缓存解析结果以提高性能;
  3. 当某个服务器不可用时,自动切换到其他可用服务器。
http://www.lryc.cn/news/602083.html

相关文章:

  • 新能源行业B端极简设计:碳中和目标下的交互轻量化实践
  • GitLab 18.2 发布几十项与 DevSecOps 有关的功能,可升级体验【三】
  • Windows 系统分辨率切换** 与 **Qt4 无边框窗口管理机制** 的交互
  • 全面解析MySQL(4)——三大范式与联合查询实例教程
  • Deep Learning_ Foundations and Concepts-Springer (2024)【拜读】前向编码器20章
  • 【CSS】设置表格表头固定
  • 深度学习----视觉里程计
  • 工业场景工服识别准确率↑32%!陌讯多特征融合算法实战解析
  • STM32 usb HOST audio USB 音频设备 放音乐
  • Pandas 里的分箱操作
  • 负载均衡集群HAproxy
  • MCP工作原理
  • Java-泛型类的定义与使用
  • 浅谈面试中的递归算法
  • 【Linux】编辑器vim和编译器gcc/g++
  • 解析分区、挂载与块设备:Linux 存储管理核心命令详解
  • 近屿智能正式发布AI得贤招聘官的AI面试官智能体6.3版本:交付替代人类面试官的打分结果
  • 零基础学习性能测试第九章:全链路追踪-项目实操
  • Jenkins + SonarQube 从原理到实战一:基于 K8s 部署与使用(含中文插件与 Python 扫描)
  • 力扣1457. 二叉树中的伪回文路径
  • 力扣面试150(42/150)
  • 旧物回收小程序:科技赋能,让旧物回收焕发生机
  • 软件测试之功能测试
  • 6种将iPhone照片传输到Windows 10电脑的方法
  • 跨境协作系统文化适配:多语言环境下的业务符号隐喻与交互习惯
  • 快速了解MySQL
  • Ubuntu lamp
  • 分布式IO选型指南:2025年分布式无线远程IO品牌及采集控制方案详解
  • 四、计算机组成原理——第3章:存储系统
  • 低速信号设计之 SMBUS 篇