Win10专业版系统搭建DNS解析服务

Win10专业版

纯新手,也没弄过Linux的。不喜勿喷,有问题请指出

第一天一头雾水整了几个小时没结果,第二天豁然开朗,10分钟明白了第一天的问题所在。

Win10

安卓:

iOS:

搭建DNS服务器的意义:

  1. 屏蔽某些永远不想访问的网站,甚至可以化敌为友,把对方的域名当成自己的本地域名来用(如访问qq.com,可以跳转到自己的网站)
  2. 同一网络下都能生效,比如Win10配置了DNS服务器,屏蔽了某些永远不想访问的网站,这时候连接同一WiFi的手机等任何设备都可以过滤它们
  3. ……

DNS服务器是hosts的升级。Win10可以修改hosts达到目的,但是手机修改这个必须root,root难度大不说,且用不了银行APP,等于说给每个设备修改hosts方法不可行。

自己的个人电脑,Win10是专业版,并非server版本,弄个Linux虚拟机真占内存和空间开了机还得开虚拟机麻烦的很;舍弃所有已安装的软件重装系统成server系统也不现实。

后来找到了个有趣的软件,bind,这个工具可以直接在Windows上使用,不限制版本。

bind官网地址: BIND 9 - ISC

先说一下自己遇到的坑:

  1. 要变成DNS服务器的电脑必须设置一个固定的IP
  2. 修改了C:\Program Files\ISC BIND 9\etc这个文件夹的文件,要想生效先关闭服务(net stop named)再启动服务(net start named)
  3. 上边俩命令需要以管理员身份运行cmd,
  4. 启动服务后,且其他设备的DNS改成Win10的IP后,配置的自己的域名可能不会立即生效,
  5. 其他小问题,网上关于在Windows上使用BIND的教程远比Linux少,抄Linux里的代码必须一行一行看,改成Windows才能用的,比如路径、……
  6. Bind服务会开机自启,但是这个自启有问题,不能正常使用dns服务。可能是目录权限问题。可以写个bat脚本,自启这个脚本。脚本命令如下,因为写的是绝对路径,bat文件放哪里都行:

cd /d %~dp0

"C:\Program Files\ISC BIND 9\bin\named.exe"  -f -g -d 1

pause

废话有点多,下面进入正题。

先来看一下必须的文件,如果只是搭建一个简单的可用的dns,只需这3:

如果想访问到自定义的域名,如qq.com,gg.com,需要添加如上边所示的gg.com.zone

关于这些文件的后缀:可以随便写,只要在named.conf里填对就行了,后缀只是能让自己好辨认。

以我为例,自己创建的文件(也是需要自己填写信息的):

详细操作:

  1. 下载BIND,我这里成功的是BIND9.17.12.x64。开始用的是BIND9.13.3.debug.x64,安装时无论如何都提示vcruntime140D.dll,百度没搜到,最后用vcruntime140.dll改名vcruntime140D.dll放到system32或wow64都不行。
  2. 安装完,程序目录C:\Program Files\ISC BIND 9的权限要给named(假设你没改默认的用户名)这个用户,或者全都开放。
  3. 进入bin目录, cmd,使用rndc-confgen -a生成key文件,名字是rndc.key,该文件会自动被放到etc文件夹(上面图)
  4. named.conf文件,至关重要的一个文件,DNS服务能不能启动成功全靠它。(写到这里突然断电了,写的还没保存,WC),进入bin,cmd使用named-checkconf查看named.conf配置文件有没有问题,有问题会提示具体的行数。如图啥提示都没有,这样才是成功,但凡有一个符号的提示都是有问题的。(有问题百度搜索named-checkconf,不要搜索出错的关键字,因为出错的关键词的结果很少)

  1. gg.com.zone文件,还是bin下cmd使用named-checkzone ns.gg.com ..\etc\gg.com.zone查看gg.com.zone文件是否有问题:(同样,有问题百度搜索named-checkzone,不要搜索出错的关键字,因为出错的关键词的结果很少)

      或者直接

没有提示出错,即万事大吉一帆风顺。
 

  1. 该填的都填了,开始启动服务,注意只能管理员身份启动,cmd,输入net  Start named,如果named.conf有问题会提示启动失败

停止:

这里有错误提示,可能还是权限问题,实际感觉不影响停止

  1. 各个文件的代码

;文件gg.com.zone 这里的注释最好只能用分号

$TTL 1H

@ IN SOA gg.com. root.gg.com. (

 2007091701  ; Serial

 30800  ; Refresh

 7200  ; Retry

 604800  ; Expire

 300 )  ; Minimum

       

        NS  gg.com.         ;每一个NS下最少要有一个A记录

        A   192.168.0.110   ;可直接访问gg.com。每个NS下添加一个A记 

ns     A   192.168.0.110   ;没加.则解析时加上域

mail    A   192.168.0.110

xx     A   192.168.0.110

## 文件localhost.zone

$TTL 1D

@       IN      SOA     localhost.      root.localhost. (

        2007091701          ; Serial

        30800               ; Refresh

        7200                ; Retry

        604800              ; Expire

        300 )               ; Minimum

        IN      NS      localhost.

localhost.        IN      A       127.0.0.1

//文件named.conf

options {

 // zone文件的位置

listen-on port 53 { any; };

 directory "C:\Program Files\ISC BIND 9\etc";

 // 无法解析的域名就去查询ISP提供的DNS

 // 在下面的IP地址位置上填写ISP的DNS地址

 allow-query { any; };

 forward first;    //first和only以及这一行不写。不写就是不转发

 forwarders {

 //这里是你本机IP或者127.0.0.1

    //127.0.0.1;

    218.202.152.130;

    218.202.152.131;

    223.5.5.5; //注意这里转发的是DNS地址,没有指定DNS转发域名。

    223.6.6.6;

    8.8.8.8;

    8.8.4.4;

 };

 // 仅允许本机与192.168.0.0网段内的机器查询

 //allow-query {

 //127.0.0.1;

 //192.168.0.0/24;  //这个要查询一下自己所在局域网的网段(其他设备配置DNS时填写24,或者255.255.255.0)

 //};

};

// gg.com是我们为自己的域的正向解析配置

zone "gg.com" IN {

 type master;

 file "gg.com.zone";

 #allow-update { none; };

};

zone "qq.com" IN {

 type master;

 file "qq.com.zone";

 #allow-update { none; };

};

// 根DNS

//zone "." {

 //type hint;

 //file "named.root";      //https://www.internic.net/zones/named.root。很慢!

//};

// localhost

zone "localhost" IN {

 type master;

 file "localhost.zone";

 allow-update { none; };

};

// localhost的反向解析

zone "0.0.127.in-addr.arpa" {

 type master;

 file "localhost.rev";

};

include "C:\Program Files\ISC BIND 9\etc\rndc.key";

感觉配置文件还是有点问题,也可能是地区的原因,最后访问CSDN:

;文件zoned.root

;直接到这里下载,https://www.internic.net/zones/

;但是解析速度是真慢

;文件qq.com.zone

;和文件gg.com.zone大同小异

//文件start.cmd

cd /d %~dp0

"C:\Program Files\ISC BIND 9\bin\named.exe"  -f -g -d 1

pause

对配置中的转发服务器、根服务器速度太慢的问题,直接在conf中删掉关于这两处的代码,随后修改ipv4如下,多整几个假的否则自己配置的(如qq.com)不生效:

至于定义了优先级为何还不从第一个的本地开始匹配,可能?

用上边的方法,能达到目的:

又能使用原来想要的:

关于中文域名解析:先在edge访问“小而美.qq.com”,再复制它到文本编辑器(如Word),会发现中文变成了非中文字符,把这一串非中文添加一个解析记录。然后重启named

参考:https://blog.csdn.net/m0_66349719/article/details/130245965

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/621810.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

运算放大器相关知识总结(1)

1、 前言 最近做了一个小项目,这个项目是研发一款阻抗测量仪。这个阻抗测量仪可以测量人体在不同频率下的生物电阻抗,该设备的核心是模拟电路,技术难点是减小模拟电路噪声。该项目前前忙了2个多月,借着研发这个项目的机会把自己掌…

ivrobot乐高EV3 鲸鱼 能力风暴自制遥控手柄库文件和编程样例 使用指南

编程示例: 资源下载链接: https://download.csdn.net/download/abilix_tony/88739582 EV3 mindstorms能用基础版和高阶版(条形编程界面) EV3 classroom只能用基础版 (scratch模块形状编程界面) 请根据使…

WEB前端人机交互导论实验-实训2格式化文本、段落与列表

1.项目1 文本与段落标记的应用&#xff1a; A.题目要求: B.思路&#xff1a; &#xff08;1&#xff09;首先&#xff0c;HTML文档的基本结构是通过<html>...</html>标签包围的&#xff0c;包含了头部信息和页面主体内容。 &#xff08;2&#xff09;在头部信息…

【AI的未来 - AI Agent系列】【MetaGPT】2. 实现自己的第一个Agent

在MetaGPT中定义的一个agent运行示例如下&#xff1a; 一个agent在启动后他会观察自己能获取到的信息&#xff0c;加入自己的记忆中下一步进行思考&#xff0c;决定下一步的行动&#xff0c;也就是从Action1&#xff0c;Action2&#xff0c;Action3中选择执行的Action决定行动…

ADSelfService Plus 推出离线多因素身份验证以提升远程工作安全性

采用先进验证方法&#xff0c;确保在任何时间、地点或连接问题下对业务数据的合法访问即使远程用户未连接到身份验证服务器或互联网&#xff0c;也可通过MFA安全认证。 MFA 得克萨斯州德尔瓦雷 — 2023年5月3日 — Zoho Corporation 旗下的企业IT管理部门ManageEngine今日宣布…

抖音小店无货源爆单技巧大公开!教你如何与达人合作!

大家好&#xff0c;我是电商花花。 现在越来越多的人开始关注抖音小店电商&#xff0c;尝试着做抖音小店&#xff0c;我们做抖音小店除了要选品之外&#xff0c;我们还要学会找达人合作&#xff0c;让达人帮我们带货出单。 今天给大家讲一下如何找达人合作带货&#xff0c;如…

【AIGC】AnimateDiff:无需定制化微调的动画化个性化的文生图模型

前言 Animatediff是一个有效的框架将文本到图像模型扩展到动画生成器中&#xff0c;无需针对特定模型进行调整。只要在大型视频数据集中学习到运动先验知识。AnimateDiff就可以插入到个性化的文生图模型中&#xff0c;与Civitai和Huggingface的文生图模型兼容&#xff0c;也可…

polar CTF CB链

一、题目 二、解答 1、通过jar包&#xff0c;可以看到/user路由下有反序列化操作 看到存在commons-beanutils依赖且版本为1.9.2&#xff0c;可利用CB链Getshell。 使用ysoserial项目中的CommonsBeanutils1链写一个POC&#xff0c;注意确保ysoserial项目中的pom.xml中的comm…

嵌入式培训机构四个月实训课程笔记(完整版)-Linux网络编程第一天-socket编程(物联技术666)

更多配套资料CSDN地址:点赞+关注,功德无量。更多配套资料,欢迎私信。 物联技术666-CSDN博客物联技术666擅长嵌入式C语言开发,嵌入式培训笔记,嵌入式硬件,等方面的知识,物联技术666关注机器学习,arm开发,物联网,嵌入式硬件,单片机领域.https://blog.csdn.net/weixin_3980490…

8.1 Centos安装部署Redis

文章目录 前言一、下载Redis二、编译Redis三、配置redis.conf四、启动Redis服务端五、启动Redis客户端测试前言 本文将手把手演示在CentOS7上安装部署Redis。 一、下载Redis 可以使用wget命令进行下载,这里下载到/app目录 wget http://download.redis.io/releases/redis-5.…

Centos安装Datax

Centos7安装DataX 一、DataX简介二、DataX的数据源支持三、安装DataX1、下载DataX2、解压3、检验是否安装成功4、使用 四、实践案例1、环境信息2、编写同步的配置文件(user_info.json)3、执行同步4、验证同步结果 一、DataX简介 DataX 是阿里云 DataWorks数据集成 的开源版本&a…

RocketMQ源码阅读-Message消息存储

RocketMQ源码阅读-Message消息存储 1. CommitLog的作用2. CommitLog 存储消息3. 时序图4. 小结 在Broker消息接收一篇中&#xff0c;分析到Broker接收到消息&#xff0c;最终会调用CommitLong#putMessage方法存储消息。 本篇来分析CommitLong#putMessage存储消息的流程。 1. C…

自编C++题目——战争

预估难度 困难 题目描述 国与国以河为界&#xff0c;有一天他们两国发生了战争&#xff0c;在边疆的战士开始了厮杀。小明是一个参谋&#xff0c;他也知道两国的兵都能打个人&#xff0c;所以他想让你帮忙安排布置兵&#xff0c;以击杀所有国的兵。 打仗规则 只能打在同一…

鸿蒙应用开发尝鲜:初识HarmonyOS

初识HarmonyOS 来源:华为官方网站 : https://developer.huawei.com/ 相信大家对鸿蒙应用开发也不在陌生,很多身处互联网行业或者不了解的人们现在也一定都听说过华为鸿蒙.这里我将不再说废话,直接步入正题 鸿蒙应用开发语言 HarmonyOS应用开发采用的是ArkTS语言,ArkTS是在Typ…

高校站群内容管理系统开发语言各有优势

站群管理系统开发可以选择多种编程语言&#xff0c;具体选择哪种语言最好需要考虑多个因素&#xff0c;包括开发团队的技术栈、项目需求、性能要求、安全性等。下面列举一些常见的编程语言及其适用场景&#xff1a; PHP&#xff1a;PHP是一种广泛使用的服务器端脚本语言&#…

数据结构:堆和堆排序

数据结构&#xff1a;堆和堆排序 文章目录 数据结构&#xff1a;堆和堆排序1.二叉树的存储结构1.顺序结构2.链式结构 2.堆3.堆的实现4.堆排序&#xff08;选择排序中的一类&#xff09;1. 基本思想2.代码实现 1.二叉树的存储结构 1.顺序结构 顺序结构存储就是使用数组来表示一…

【数据结构 | 直接插入排序】

直接插入排序 基本思路直接插入排序SelectSort 基本思路 扑克牌是我们几乎每个人都可能玩过的游戏最基本的扑克玩法都是—边模牌,— 边理牌。加入我们拿到如图这样的扑克牌&#xff1a; 我们会按照如下理牌&#xff1a; 将3和4移动至5的左侧&#xff0c;再将2移动到最左侧&a…

按键开关机的锂电池充放电解决方案

一、产品概述 TP4562 是一款集成线性充电管理、同步升压转换、电池电量指示和多种保护功能的单芯片电源管理SOC&#xff0c;为锂电池的充放电提供完整的单芯片电源解决方案。 TP4562 内部集成了线性充电管理模块、同步升压放电管理模块、电量检测与 LED 指示模块、保护模块、…

使用Spark操作Hudi表详细教程

Hudi Spark使用 本篇为大家带来通过Spark shell和Spark SQL操作Hudi表的方式。 Hudi表还可以通过Spark ThriftServer操作。 软件准备 Scala 2.12Flink 1.15Spark 3.3Hudi 0.13.1 Hudi编译的时候会遇到依赖下载缓慢的情况。需要换用国内源。修改settings.xml文件&#xff0c…

[NSSCTF Round#16 Basic]RCE但是没有完全RCE

[NSSCTF Round#16 Basic]RCE但是没有完全RCE 第一关 <?php error_reporting(0); highlight_file(__file__); include(level2.php); if (isset($_GET[md5_1]) && isset($_GET[md5_2])) {if ((string)$_GET[md5_1] ! (string)$_GET[md5_2] && md5($_GET[md…