id: 1fa472aa877c485f9cdd89563ca57ee0
parent_id: 
item_type: 1
item_id: f22c741c2ace45dcaf7c5cf5544e7b83
item_updated_time: 1764345620919
title_diff: "[{\"diffs\":[[1,\"Docker搭建一款轻量级个人自用DNS服务器\"]],\"start1\":0,\"start2\":0,\"length1\":0,\"length2\":23}]"
body_diff: "[{\"diffs\":[[1,\"<html>\\\r\\\n<head>\\\r\\\n  <title>Docker搭建一款轻量级个人自用DNS服务器</title>\\\r\\\n  <basefont face=\\\"微软雅黑\\\" size=\\\"2\\\" />\\\r\\\n  <meta http-equiv=\\\"Content-Type\\\" content=\\\"text/html;charset=utf-8\\\" />\\\r\\\n  <meta name=\\\"exporter-version\\\" content=\\\"YXBJ Windows/608924 (zh-CN, DDL); Windows/10.0.0 (Win64); EDAMVersion=V2;\\\"/>\\\r\\\n  <meta name=\\\"content-class\\\" content=\\\"yinxiang.peso.superNote\\\"/>\\\r\\\n  <meta name=\\\"application-data:yinxiang.noteLayout\\\" content=\\\"{\\\"lineSpace\\\":\\\"recommend\\\",\\\"paragraphSpace\\\":\\\"recommend\\\"}\\\"/>\\\r\\\n  <style>\\\r\\\n\\tbody, td {\\\r\\\n\\t  font-family: 微软雅黑;\\\r\\\n\\t  font-size: 12pt;\\\r\\\n\\t}\\\r\\\n  </style>\\\r\\\n</head>\\\r\\\n<body>\\\r\\\n<a name=\\\"37333\\\"></a>\\\r\\\n<h1>Docker搭建一款轻量级个人自用DNS服务器</h1>\\\r\\\n\\\r\\\n<div><span style=\\\"\\\"><div style=\\\"max-width: 700px;\\\"><p></p><div style=\\\"--en-blockquote: true; box-sizing: border-box; border-left: 3px solid #b4c0cc; background-position: initial initial; background-repeat: initial initial;\\\"><div>原文链接: <a href=\\\"http://mp.weixin.qq.com/s?__biz=MzkyNTM0ODgwMg==&amp;mid=2247493308&amp;idx=1&amp;sn=9ac94fecb133540b33aa7b3068a0392c&amp;chksm=c024f417ec0ae866dc82a2a3f903ea1aab9d1303ebb6fc15d9b1ce7479f1c22c1ee75e914a5f&amp;mpshare=1&amp;scene=1&amp;srcid=01282bQwO91UPMsS0r9WXXIL&amp;sharer_shareinfo=a341e66d205ea31b5020cfc563be6924&amp;sharer_shareinfo_first=a341e66d205ea31b5020cfc563be6924#rd\\\"><span>http://mp.weixin.qq.com/s?__biz=MzkyNTM0ODgwMg==&amp;mid=2247493...</span></a></div></div><p></p><div style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent;\\\"><div style=\\\"-webkit-tap-highlight-color: transparent;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent;\\\">原创</span><span style=\\\"-webkit-tap-highlight-color: transparent;\\\"><span style=\\\"-webkit-tap-highlight-color: transparent;\\\">院长技术</span></span><span style=\\\"-webkit-tap-highlight-color: transparent;\\\"><a style=\\\"-webkit-tap-highlight-color: transparent;\\\"> 院长技术 </a></span><span style=\\\"-webkit-tap-highlight-color: transparent;\\\"><em style=\\\"-webkit-tap-highlight-color: transparent;\\\"></em></span></div><div style=\\\"-webkit-tap-highlight-color: transparent;\\\"><h1 style=\\\"-webkit-tap-highlight-color: transparent;\\\">自建DNS服务器的好处主要体现在以下几个方面：<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/><br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/>  1. 提高网络性能和可靠性：自建DNS服务器可以根据实际的网络环境和用户群体进行优化，提供更快的域名解析速度和更稳定的解析服务。同时，通过设置多个DNS服务器提供冗余，可以提高域名解析的可靠性，避免单点故障。<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/><br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/>  2. 增强网络安全：自建DNS服务器可以实施更严格的安全策略，如防止DNS劫持、DDoS攻击等，保障域名解析过程的安全性。通过控制DNS查询，还可以防止恶意软件和网络钓鱼攻击。<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/><br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/>  3. 灵活管理：自建DNS服务器具有极高的可定制性，可以根据实际需求进行灵活的配置和管理，如添加、删除、修改解析记录等。这有助于满足特定场景下的解析需求，如负载均衡、故障转移等。<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/><br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/>  4. 支持内部网络服务：自建DNS服务器可以支持内部网络服务，如内部网站的域名解析，以及实现特定策略和过滤功能。这对于企业用户来说尤其重要，可以减少对外部服务商的依赖，并保护内部网络的安全。<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/><br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/>  5. 优化资源利用：自建DNS服务器可以利用已有的硬件资源，如不再使用的旧电脑或服务器，无需额外投资即可建立起服务。同时，通过缓存已解析过的域名信息，减少对上级DNS服务器的查询次数，提高解析效率。<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/><br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/>  6. 隐私保护：自建DNS服务器可以避免用户访问行为的外泄，因为所有的DNS查询都在本地进行，无需经过第三方DNS服务商。这对于注重隐私保护的用户来说是一个重要的考虑因素。<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/><br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/>然而，自建DNS服务器也需要一定的技术知识和经验进行配置和维护。同时，随着解析请求的增加，自建DNS服务器可能面临性能瓶颈和安全威胁。因此，在决定自建DNS服务器时，需要全面考虑自身的需求、资源条件和技术能力。</h1><h1 style=\\\"-webkit-tap-highlight-color: transparent;\\\">使用Docker搭建DNS服务器，可以选择一个轻量级的DNS服务器镜像，例如lhstack/small-dns，它的大小仅约6M，功能包括Ptr和Ipv4的域名映射和解析转发，能满足内网的大部分需求。以下是使用Docker搭建DNS服务器的基本步骤：<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/><br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/>  1. 查找并下载镜像使用Docker命令查找并下载所需的DNS服务器镜像。例如，查找small-dns镜像并下载：<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/> docker search small-dns<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/>   docker pull lhstack/small-dns<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/><br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/>  2. 启动DNS服务器容器使用docker run命令启动DNS服务器容器。需要指定容器名称、端口映射以及镜像名称等参数。例如：<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/> docker run --name small-dns -p 53:53/udp -d lhstack/small-dns<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/><br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/>这条命令会启动一个名为small-dns的容器，将容器的53端口映射到宿主机的53端口（UDP协议），并以后台模式运行lhstack/small-dns镜像。<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/><br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/>  3. 查看日志和默认配置使用docker logs命令查看DNS服务器的日志输出，了解容器的启动状态和默认配置。例如：<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/> docker logs small-dns<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/><br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/>可以通过日志输出看到加载的配置文件内容和一些环境变量信息。<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/><br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/>  4. 配置DNS服务器根据需要修改DNS服务器的配置。lhstack/small-dns镜像支持通过环境变量和配置文件进行配置。例如，可以使用HighLevelLocal方式启动容器，并指定配置文件的路径：<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/> docker run --name small-dns -p 53:53/udp -e DNS_REPO_TYPE=HighLevelLocal -e HIGH_LEVEL_LOCAL_DNS_RESOLVE_CONFIG=/config/config.json -v ${PWD}/config:/config -d lhstack/small-dns<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/><br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/>在上面的命令中，-e DNS_REPO_TYPE=HighLevelLocal指定了DNS解析配置存储的仓库类型为HighLevelLocal，-e HIGH_LEVEL_LOCAL_DNS_RESOLVE_CONFIG=/config/config.json指定了配置文件的路径，-v ${PWD}/config:/config将宿主机的config目录挂载到容器的/config目录。<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/><br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/>  5. 测试DNS解析使用nslookup命令或其他DNS查询工具测试DNS服务器的解析功能。例如：<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/> nslookup www.example.com 127.0.0.1<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/><br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/>这条命令会向本地的DNS服务器（127.0.0.1）查询www.example.com的IP地址。如果DNS服务器配置正确且正在运行，则应该能够返回正确的IP地址。<br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/><br style=\\\"-webkit-tap-highlight-color: transparent;\\\"/>需要注意的是，以上步骤仅提供了使用Docker搭建DNS服务器的基本方法。在实际应用中，可能需要根据具体需求进行更多的配置和优化工作。同时，也需要确保DNS服务器的安全性和稳定性，以避免潜在的安全风险和故障。</h1></div></div></div></div></div></span>\\\n</div></body></html>\\u0000\"]],\"start1\":0,\"start2\":0,\"length1\":0,\"length2\":6472}]"
metadata_diff: {"new":{"id":"f22c741c2ace45dcaf7c5cf5544e7b83","parent_id":"f67288c3a0be4374b5d532b5dcc3aabc","latitude":"0.00000000","longitude":"0.00000000","altitude":"0.0000","author":"","source_url":"","is_todo":0,"todo_due":0,"todo_completed":0,"source":"joplin-desktop","source_application":"net.cozic.joplin-desktop","application_data":"","order":1764348818455,"markup_language":2,"is_shared":0,"share_id":"","conflict_original_id":"","master_key_id":"","user_data":"","deleted_time":0},"deleted":[]}
encryption_cipher_text: 
encryption_applied: 0
updated_time: 2025-11-28T21:03:25.996Z
created_time: 2025-11-28T21:03:25.996Z
type_: 13