<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Network on eatmoreduck&#39;s Blog</title>
    <link>https://blog.xiaohuangyu.space/tags/network/</link>
    <description>Recent content in Network on eatmoreduck&#39;s Blog</description>
    <generator>Hugo</generator>
    <language>zh-CN</language>
    <lastBuildDate>Thu, 17 Sep 2026 11:54:26 +0800</lastBuildDate>
    <atom:link href="https://blog.xiaohuangyu.space/tags/network/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>ZeroTier Planet 组网完全指南：从原理到实践</title>
      <link>https://blog.xiaohuangyu.space/p/zerotier-planet-guide/</link>
      <pubDate>Wed, 05 Nov 2025 10:00:00 +0800</pubDate>
      <guid>https://blog.xiaohuangyu.space/p/zerotier-planet-guide/</guid>
      <description>&lt;p&gt;在当今时代，远程访问和跨地域网络连接已成为工作和生活的必需品。无论是远程办公访问公司资源，还是在家控制智能设备，抑或承担不起云上高额费用，想让家中旧设备焕发活力，我们都需要一种安全、高效且稳定，且高性价比的网络解决方案。ZeroTier就是一款强大的工具，它能让我们轻松搭建跨越互联网的虚拟局域网。&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>在当今时代，远程访问和跨地域网络连接已成为工作和生活的必需品。无论是远程办公访问公司资源，还是在家控制智能设备，抑或承担不起云上高额费用，想让家中旧设备焕发活力，我们都需要一种安全、高效且稳定，且高性价比的网络解决方案。ZeroTier就是一款强大的工具，它能让我们轻松搭建跨越互联网的虚拟局域网。</p>
<h2 id="为什么需要组网">为什么需要组网？</h2>
<h3 id="zerotier简介">ZeroTier简介</h3>
<p>ZeroTier是一款基于P2P技术的虚拟局域网（VPN）工具，它能够将分布在全球各地的设备连接在一个虚拟的局域网中。通过ZeroTier，您可以实现：</p>
<ol>
<li><strong>远程访问</strong>：在公司用手机直接访问家里的NAS设备</li>
<li><strong>设备互联</strong>：让分布在不同地理位置的设备如同在同一个局域网内一样通信</li>
<li><strong>点对点直连</strong>：设备间直接通信，无需经过中转服务器，既快速又安全</li>
</ol>
<h3 id="工作原理">工作原理</h3>
<p>ZeroTier的工作原理涉及三个关键概念：</p>
<ul>
<li><strong>PLANET（行星服务器）</strong>：ZeroTier网络的核心根服务器，负责网络发现和初始连接，相当于整个网络的&quot;中枢&quot;</li>
<li><strong>MOON（卫星服务器）</strong>：用户可以自建的私有根服务器，作为区域性的代理节点，帮助就近的设备更快地建立连接</li>
<li><strong>LEAF（叶子节点）</strong>：所有接入ZeroTier网络的终端设备，如电脑、手机、服务器等</li>
</ul>
<p>设备之间的连接过程是：首先通过PLANET或MOON进行发现和协商，然后尽可能建立P2P直连，只有在无法直连的情况下才会通过中转方式进行通信。</p>
<h2 id="为什么自建planet服务器">为什么自建Planet服务器？</h2>
<p>虽然ZeroTier官方提供了免费的PLANET服务器，但在实际使用中存在以下问题：</p>
<ol>
<li><strong>网络延迟</strong>：官方服务器位于海外，国内用户访问延迟高且不稳定</li>
<li><strong>连接速度</strong>：本地化的PLANET服务器可以显著加快设备间的连接建立速度</li>
<li><strong>网络控制</strong>：自建服务器让您完全掌控网络配置，可根据需求进行优化调整</li>
<li><strong>安全性</strong>：私有化部署意味着网络流量不经过第三方服务器，更加安全可靠</li>
<li><strong>独立性</strong>：避免因官方服务器故障或网络波动影响业务正常运行</li>
</ol>
<h2 id="如何自建planet服务器">如何自建Planet服务器？</h2>
<p>我们将使用<a href="https://github.com/xubiaolin/docker-zerotier-planet">xubiaolin/docker-zerotier-planet</a>项目，通过Docker容器快速部署私有的Planet服务器。</p>
<h3 id="环境准备">环境准备</h3>
<p>在开始安装之前，请确保您的服务器满足以下条件：</p>
<ol>
<li>拥有公网IP地址</li>
<li>开放以下端口：
<ul>
<li>3443/tcp（管理面板，默认可调整）</li>
<li>9994/tcp（ZeroTier通信，默认可调整）</li>
<li>9994/udp（ZeroTier通信，默认可调整）</li>
</ul>
</li>
<li>安装必要的软件依赖：
<ul>
<li>Docker（容器运行环境）</li>
<li>Git（获取项目代码）</li>
</ul>
</li>
</ol>
<h3 id="部署步骤">部署步骤</h3>
<ol>
<li><strong>安装依赖软件</strong></li>
</ol>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># Debian/Ubuntu系统</span>
</span></span><span class="line"><span class="cl">apt update <span class="o">&amp;&amp;</span> apt install git docker.io -y
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># CentOS/Rocky Linux系统</span>
</span></span><span class="line"><span class="cl">yum update <span class="o">&amp;&amp;</span> yum install git docker -y
</span></span></code></pre></div><ol start="2">
<li><strong>克隆项目代码</strong></li>
</ol>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="c1"># 官方地址</span>
</span></span><span class="line"><span class="cl">git clone https://github.com/xubiaolin/docker-zerotier-planet.git
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="c1"># 如果网络受限，可使用加速地址</span>
</span></span><span class="line"><span class="cl">git clone https://ghproxy.imoyuapp.win/https://github.com/xubiaolin/docker-zerotier-planet.git
</span></span></code></pre></div><ol start="3">
<li><strong>运行部署脚本</strong></li>
</ol>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl"><span class="nb">cd</span> docker-zerotier-planet
</span></span><span class="line"><span class="cl">chmod +x deploy.sh
</span></span><span class="line"><span class="cl">./deploy.sh
</span></span></code></pre></div><p>根据提示选择&quot;安装&quot;选项，脚本将自动完成部署过程，通常需要1-3分钟。</p>
<ol start="4">
<li><strong>获取配置文件</strong></li>
</ol>
<p>部署完成后，会在<code>./data/zerotier/dist</code>目录下生成<code>planet</code>和<code>moon</code>配置文件。您可以通过安装完成后提供的URL直接下载，或使用SCP等工具从服务器下载。</p>
<ol start="5">
<li><strong>访问管理面板</strong></li>
</ol>
<p>部署完成后，可通过<code>http://服务器IP:3443</code>访问管理面板，默认账号为<code>admin</code>，默认密码为<code>password</code>。</p>
<h2 id="使用自建planet服务器组网">使用自建Planet服务器组网</h2>
<h3 id="创建网络">创建网络</h3>
<ol>
<li>登录管理面板后，点击&quot;Networks&quot;菜单</li>
<li>点击&quot;Add Network&quot;按钮创建新网络</li>
<li>输入网络名称，其他选项保持默认</li>
<li>记录生成的网络ID，后续客户端配置需要用到</li>
</ol>
<h3 id="客户端配置">客户端配置</h3>
<h4 id="windows客户端">Windows客户端</h4>
<ol>
<li>从ZeroTier官网下载并安装客户端</li>
<li>将<code>planet</code>文件复制到<code>C:\ProgramData\ZeroTier\One</code>目录（需要显示隐藏目录）</li>
<li>重启ZeroTier服务：
<ul>
<li>Win+S搜索&quot;服务&quot;</li>
<li>找到ZeroTier One并重启</li>
</ul>
</li>
<li>使用管理员身份打开PowerShell，执行：
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-powershell" data-lang="powershell"><span class="line"><span class="cl"><span class="nb">zerotier-cli</span><span class="p">.</span><span class="py">bat</span> <span class="n">join</span> <span class="p">[</span><span class="n">网络ID</span><span class="p">]</span>
</span></span></code></pre></div></li>
<li>在管理面板中授权该设备</li>
</ol>
<h4 id="linux客户端">Linux客户端</h4>
<ol>
<li>安装ZeroTier客户端</li>
<li>进入目录<code>/var/lib/zerotier-one</code></li>
<li>替换目录下的<code>planet</code>文件</li>
<li>重启服务：
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">service zerotier-one restart
</span></span></code></pre></div></li>
<li>加入网络：
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">zerotier-cli join <span class="o">[</span>网络ID<span class="o">]</span>
</span></span></code></pre></div></li>
<li>在管理面板中授权该设备</li>
</ol>
<h4 id="macos客户端">macOS客户端</h4>
<ol>
<li>进入<code>/Library/Application\ Support/ZeroTier/One/</code>目录</li>
<li>替换目录下的<code>planet</code>文件</li>
<li>重启服务：
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">cat /Library/Application<span class="se">\ </span>Support/ZeroTier/One/zerotier-one.pid <span class="p">|</span> sudo xargs <span class="nb">kill</span>
</span></span></code></pre></div></li>
<li>加入网络：
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">zerotier-cli join <span class="o">[</span>网络ID<span class="o">]</span>
</span></span></code></pre></div></li>
<li>在管理面板中授权该设备</li>
</ol>
<p><img loading="lazy" src="https://cdn.jsdelivr.net/gh/eatmoreduck/picture-repository@master/blog/20251105205603736.png" alt="image.png"  />
</p>
<h3 id="验证连接">验证连接</h3>
<p>在任意客户端执行以下命令验证连接状态：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">zerotier-cli peers
</span></span></code></pre></div><p>如果看到PLANET角色且连接方式为DIRECT（直连），则表示配置成功。</p>
<h2 id="常见问题与解决方案">常见问题与解决方案</h2>
<h3 id="连接问题">连接问题</h3>
<ol>
<li><strong>检查防火墙设置</strong>：确保服务器和客户端都开放了相应端口</li>
<li><strong>云服务商安全组</strong>：在阿里云、腾讯云等平台后台放行端口</li>
<li><strong>网络类型限制</strong>：某些网络环境下UDP可能被QoS限制，可考虑使用OpenVPN等替代方案</li>
</ol>
<h3 id="权限问题">权限问题</h3>
<ol>
<li><strong>客户端未授权</strong>：确保在管理面板中勾选了设备的&quot;Authorized&quot;</li>
<li><strong>文件权限错误</strong>：确保<code>planet</code>文件具有正确的读取权限</li>
</ol>
<h3 id="性能优化">性能优化</h3>
<ol>
<li><strong>部署Moon服务器</strong>：对于大规模部署，可以在不同地区部署Moon服务器以提高连接效率</li>
<li><strong>监控连接状态</strong>：定期检查<code>zerotier-cli peers</code>输出，确保设备间维持DIRECT连接</li>
</ol>
<h2 id="安全建议">安全建议</h2>
<ol>
<li><strong>及时修改默认密码</strong>：部署完成后应立即修改管理面板的默认账号密码</li>
<li><strong>启用HTTPS</strong>：为管理面板配置SSL证书，提高安全性</li>
<li><strong>定期备份配置</strong>：妥善保管生成的配置文件，特别是<code>planet</code>和<code>moon</code>文件</li>
<li><strong>访问控制</strong>：严格控制网络成员，仅授权可信设备加入</li>
</ol>
<h2 id="实际应用场景">实际应用场景</h2>
<ol>
<li><strong>远程办公</strong>：员工在家访问公司内部系统和资源</li>
<li><strong>家庭网络</strong>：在外随时访问家中的NAS、智能家居设备</li>
<li><strong>游戏联机</strong>：为分布式的游戏服务器建立专用网络</li>
<li><strong>开发测试</strong>：为开发团队提供隔离的测试网络环境</li>
<li><strong>IoT设备管理</strong>：统一管理分布在全球各地的物联网设备</li>
</ol>
<p>搭建好 planet 之后，在阿里云服务器上想要直接访问远程设备，也需要加入搭建好的 planet 网络，因 planet 和 peer 在同一台机器，可能会出现端口冲突的情况（默认用 9993），需要自定义 zerotier-cli 的端口</p>
<p>编辑 <code>/var/lib/zerotier-one/local.conf</code>文件（如果不存在则创建）：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">{
</span></span><span class="line"><span class="cl">    &#34;settings&#34;: {
</span></span><span class="line"><span class="cl">        &#34;primaryPort&#34;: 9994
</span></span><span class="line"><span class="cl">    }
</span></span><span class="line"><span class="cl">}
</span></span></code></pre></div><p>配置完成后，使用</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">zerotier-cli join [网络ID]
</span></span></code></pre></div><p>s
即可在页面看到已经加入的阿里云机器，及家中局域网的机器</p>
]]></content:encoded>
    </item>
    <item>
      <title>远程访问系列（一）公网IP</title>
      <link>https://blog.xiaohuangyu.space/p/wan-to-lan-via-public-ipv4/</link>
      <pubDate>Wed, 06 Nov 2024 10:25:04 +0800</pubDate>
      <guid>https://blog.xiaohuangyu.space/p/wan-to-lan-via-public-ipv4/</guid>
      <description>&lt;p&gt;最近新入了个 NAS ，设备是绿联 DXP4800，装上黑裙之后，首要的问题是解决最常用的照片文件同步问题，上文已经解决过，参见 &lt;a href=&#34;https://blog.xiaohuangyu.space/p/dxp4800-synology/&#34;&gt;DXP4800-黑群晖小记&lt;/a&gt; 研究了几种外网访问内网设备的方案，在这里做个总结。本文是该系列的开篇，主要介绍各种方案的优缺点和适用场景。&#xA;网上搜索外网访问内网，局域网访问，远程连接，远程访问 docker，基本都可以归类为人不在家，想访问家中的nas 及其他的设备，所以标题暂时起名为远程访问系列&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>最近新入了个 NAS ，设备是绿联 DXP4800，装上黑裙之后，首要的问题是解决最常用的照片文件同步问题，上文已经解决过，参见 <a href="https://blog.xiaohuangyu.space/p/dxp4800-synology/">DXP4800-黑群晖小记</a> 研究了几种外网访问内网设备的方案，在这里做个总结。本文是该系列的开篇，主要介绍各种方案的优缺点和适用场景。
网上搜索外网访问内网，局域网访问，远程连接，远程访问 docker，基本都可以归类为人不在家，想访问家中的nas 及其他的设备，所以标题暂时起名为远程访问系列</p>
<h2 id="远程访问方案梳理">远程访问方案梳理</h2>
<h3 id="1-基于公网-ip-的直接访问方案">1. 基于公网 IP 的直接访问方案</h3>
<ul>
<li><strong>优点</strong>：直接利用公网 IP 访问，无需中转，速度快。支持 ipv4/ipv6。</li>
<li><strong>缺点</strong>：依赖运营商分配公网 IP，安全风险高。</li>
<li><strong>适用场景</strong>：有公网 IP 的网络环境，如部分企业专线、有公网 IP 的家庭网络。</li>
</ul>
<h3 id="2-vpn虚拟专用网络方案">2. VPN（虚拟专用网络）方案</h3>
<ul>
<li><strong>优点</strong>：安全加密，可完整访问内网。</li>
<li><strong>缺点</strong>：需服务器或依赖 Cloudflare 服务，配置复杂。</li>
<li><strong>适用场景</strong>：企业办公环境。</li>
<li><strong>软件推荐</strong>：OpenVPN、WireGuard。</li>
</ul>
<h3 id="3-内网穿透方案">3. 内网穿透方案</h3>
<ul>
<li><strong>优点</strong>：无需公网 IP，配置灵活。</li>
<li><strong>缺点</strong>：依赖中转服务器，且访问速度与中转服务器带宽有关，需要额外付费，并且可能有延迟。</li>
<li><strong>适用场景</strong>：临时远程访问，如开发测试。</li>
<li><strong>软件推荐</strong>：frp、ngrok。</li>
</ul>
<h3 id="4-zerotier-异地组网方案">4. ZeroTier 异地组网方案</h3>
<ul>
<li><strong>优点</strong>：P2P 连接，配置简单。</li>
<li><strong>缺点</strong>：免费版限制设备数量，且存在打洞失败几率，但可使用自建 planet 一类的来突破限制（需要服务器）。</li>
<li><strong>适用场景</strong>：小型组网，如家庭网络。</li>
</ul>
<h3 id="5-cloudflare-tunnel-方案">5. Cloudflare Tunnel 方案</h3>
<ul>
<li><strong>优点</strong>：安全性高，配置简单。</li>
<li><strong>缺点</strong>：依赖 Cloudflare 服务，因众所周知的原因速度访问巨慢。</li>
<li><strong>适用场景</strong>：Web 服务、应用访问。</li>
</ul>
<p>个人比较推荐方案 1和方案 4，理由如下</p>
<ol>
<li>付费少</li>
<li>配置相对简单</li>
<li>打通之后，需要少量配置或无需配置即可实现多设备访问</li>
</ol>
<p>本文先介绍如何使用公网 ip 来进行远程访问，本文先假定能够开通 ipv4,具体操作步骤如下</p>
<h2 id="基于公网-ipv4-的直接访问方案">基于公网 IPV4 的直接访问方案</h2>
<h2 id="一获取公网ip">一、获取公网IP</h2>
<h3 id="1-申请公网ip">1. 申请公网IP</h3>
<ul>
<li>联系宽带运营商客服申请开通公网IP</li>
<li>根据运营商政策可能需要更换套餐或支付额外费用</li>
<li>可能获得的公网IP类型：
<ul>
<li>固定IPv4（地址不变，费用较高，一般申请不到）</li>
<li>动态IPv4（光猫重启后地址可能会变化，所以需要域名配合ddns 解析）</li>
<li>动态IPv6（现在运营商普遍支持，但需要配合动态 dns 解析）</li>
</ul>
</li>
</ul>
<h3 id="2-验证公网ip">2. 验证公网IP</h3>
<ul>
<li>访问  <a href="https://ip138.com/">https://ip138.com/</a>  或直接百度搜 ip 查询当前 ip</li>
<li>使用命令行工具检查：
<ul>
<li>Windows: ipconfig /all</li>
<li>Linux/Mac: ifconfig 或 ip addr</li>
</ul>
</li>
<li>注意区分内网IP（192.168.x.x、10.x.x.x等）和公网IP，且注意路由器或光猫是否响应 ping 命令</li>
</ul>
<h2 id="二网络环境配置">二、网络环境配置</h2>
<h3 id="1-光猫设置">1. 光猫设置</h3>
<ul>
<li>理想情况：直接在光猫配置端口转发
<ul>
<li>需要运营商提供超级管理员密码</li>
<li>配置较简单，性能较好</li>
</ul>
</li>
<li>现实情况：多数无法获取超级管理员权限，且光猫性能垃圾，多设备连接了之后会异常卡
<ul>
<li>需要将光猫改为桥接模式，自己额外接路由器</li>
<li>可能需要运营商远程协助设置</li>
</ul>
</li>
</ul>
<h4 id="可能遇到的问题及解决方案">可能遇到的问题及解决方案</h4>
<ol>
<li>运营商不给开公网ip =&gt; 投诉</li>
<li>运营商不给开桥接 =》 投诉</li>
</ol>
<h3 id="2-路由器配置">2. 路由器配置</h3>
<ul>
<li>选购支持端口转发的路由器</li>
<li>设置路由器PPPoE拨号
<ul>
<li>输入宽带账号密码</li>
</ul>
</li>
<li>配置端口转发
<ul>
<li>选择需要转发的内部端口</li>
<li>设置对应的外部端口</li>
<li>指定内网设备IP地址</li>
<li>选择协议类型（TCP/UDP）</li>
</ul>
</li>
</ul>
<h4 id="可能遇到的问题及解决方案-1">可能遇到的问题及解决方案</h4>
<ol>
<li>拿不到宽带账号密码 =》 投诉</li>
<li>验证自己的路由器是否获取到公网 ip =》 <a href="https://ip138.com">https://ip138.com</a> 看ip 是否与路由器后台 ip 一致，且不为192.168.xxx.xxx ，不为 10.xx.xx.xx</li>
<li>验证端口转发是否生效  =&gt; 假定获取到的公网ip 为 222.71.193.9  配置的转发为 9999 端口转发到内网 192.168.1.200 机器的 5001 端口，则执行命令</li>
</ol>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">&gt; telnet  222.71.193.9 9999   回车
</span></span><span class="line"><span class="cl">Trying  222.71.193.9...
</span></span><span class="line"><span class="cl">Connected to  222.71.193.9.
</span></span><span class="line"><span class="cl">Escape character is &#39;^]&#39;.       (出现这行表示正常，如果没出现则依次排查应用状态，防火墙状态，端口转发是否正确)
</span></span></code></pre></div><h3 id="3-防火墙设置">3. 防火墙设置</h3>
<ul>
<li>路由器防火墙配置
<ul>
<li>开放必要端口</li>
<li>设置访问控制规则</li>
<li>启用基本安全防护</li>
</ul>
</li>
<li>内网设备防火墙配置
<ul>
<li>允许相关端口访问</li>
<li>配置访问白名单</li>
<li>启用安全防护措施</li>
</ul>
</li>
</ul>
<p>完成上述配置之后，在外网可以直接通过 http://公网ip:端口转发外部port 访问相关的 web 应用,此处的 ip 为公网 ip，port 为配置的外网端口转发，假定获取到的公网ip 为 222.71.193.9  配置的转发为 9999 端口转发到内网 192.168.1.200 机器的 5000 端口（群晖默认端口），则访问地址为
http://222.71.193.9:9999 ，但运营商给的是动态 ip，可能会在某些特定的时候自动改变，或者是在路由器重启时重新分配，重新分配之后，就原来的方式就不能访问了，所以为了使用方便，都希望直接使用某个域名来远程访问内部服务，接下来就需要介绍后续DDNS 了</p>
<p>DDNS （Dynamic DNS), 熟悉 DNS 的小伙伴都知道 DNS 是将域名转为 IP 地址的服务，直接复习下</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl"> DDNS（动态域名系统）和DNS（域名系统）是两个相关但不同的概念。以下是它们的主要区别：
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">### DNS（域名系统）
</span></span><span class="line"><span class="cl">- **全球性服务**：DNS是一个全球性的服务，它将人类易于记忆的域名转换为计算机使用的IP地址。
</span></span><span class="line"><span class="cl">- **静态解析**：传统的DNS服务通常用于静态IP地址，即域名与IP地址的映射是固定的，不会随时间变化。
</span></span><span class="line"><span class="cl">- **分布式系统**：DNS是一个分层的分布式系统，包括根服务器、顶级域名服务器、权威名称服务器和递归服务器。
</span></span><span class="line"><span class="cl">- **缓存机制**：DNS查询结果通常被缓存，以提高解析速度和减轻DNS服务器的负载。
</span></span><span class="line"><span class="cl">- **适用于静态IP**：对于拥有静态公网IP的用户或企业来说，传统的DNS服务是合适的。
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">### DDNS（动态域名系统）
</span></span><span class="line"><span class="cl">- **动态IP支持**：DDNS服务允许用户将一个固定的域名与动态变化的IP地址关联起来，特别适用于家庭用户和小型办公室，他们的公网IP地址可能会因为重新连接互联网而变化。
</span></span><span class="line"><span class="cl">- **自动更新**：DDNS服务会自动检测IP地址的变化，并更新DNS记录，确保域名始终指向当前的IP地址。
</span></span><span class="line"><span class="cl">- **依赖第三方服务**：DDNS服务通常由第三方提供商提供，用户需要在服务提供商的平台上注册域名，并配置DDNS服务。
</span></span><span class="line"><span class="cl">- **客户端软件**：用户通常需要在本地网络设备上安装客户端软件，该软件会监测IP地址的变化，并与DDNS服务提供商的服务器通信以更新DNS记录。
</span></span><span class="line"><span class="cl">- **适用于动态IP**：对于没有静态公网IP的用户来说，DDNS服务是必要的，以便他们能够通过一个固定的域名来访问或管理他们的网络设备。
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">总结来说，DNS是一个全球性的域名解析服务，而DDNS是DNS服务的一个扩展，专门为动态IP地址提供域名解析服务。DDNS解决了动态IP地址环境下域名解析的问题，使得用户可以通过一个固定的域名来访问他们的设备，即使这些设备的IP地址可能会变化。
</span></span></code></pre></div><p>DDNS是直接将域名转化为动态 ip，这样我们配置好之后就直接能用固定的域名访问内网中的各种服务了</p>
<h2 id="三域名解析配置可选">三、域名解析配置（可选）</h2>
<h3 id="1-域名准备">1. 域名准备</h3>
<ul>
<li>购买域名</li>
<li>配置DNS服务器</li>
</ul>
<h3 id="2-ddns配置">2. DDNS配置</h3>
<ul>
<li>选择DDNS软件
<ul>
<li>DDNS-GO</li>
<li>Lucky</li>
<li>NO-IP</li>
<li>花生壳</li>
</ul>
</li>
<li>软件配置
<ul>
<li>设置域名提供商API，网上教程太多 不过多赘述，参考各个软件官方文档即可</li>
<li>配置更新间隔</li>
<li>选择需要解析的域名</li>
</ul>
</li>
<li>运行方式
<ul>
<li>物理机直接运行</li>
<li>Docker容器运行</li>
<li>路由器插件运行</li>
</ul>
</li>
</ul>
<h3 id="3-解析验证">3. 解析验证</h3>
<ul>
<li>测试域名解析是否正确</li>
</ul>
<h4 id="可能遇到的问题及解决方案-2">可能遇到的问题及解决方案</h4>
<ol>
<li>测试域名解析是否正确 =&gt;</li>
</ol>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-fallback" data-lang="fallback"><span class="line"><span class="cl">❯ ping 你配置在 ddns 软件里的域名 比如
</span></span><span class="line"><span class="cl">ping nas.abcdefg.com
</span></span><span class="line"><span class="cl">PING nas.abcdefg.com (222.71.193.9): 56 data bytes
</span></span><span class="line"><span class="cl">64 bytes from 222.71.193.9: icmp_seq=0 ttl=50 time=12.410 ms
</span></span><span class="line"><span class="cl">64 bytes from 222.71.193.9: icmp_seq=1 ttl=50 time=13.020 ms
</span></span><span class="line"><span class="cl">64 bytes from 222.71.193.9: icmp_seq=2 ttl=50 time=15.120 ms
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">重复出现的 ip与自己公网 ip 一致即可
</span></span></code></pre></div><p><strong>如果在配置 ddns 之前如果都没问题，但是 ddns 解析有问题，可能需要关注下自己是否使用了相关代理软件，修改代理规则，我曾经遇到过使用 cloudflare 的 dns，同时在路由器上配置了代理，再使用 ddns 时发现 cloudflare 上的 dns 解析一直是解析到某海外 ip，排查之后发现是规则设置的问题</strong></p>
<h2 id="四测试验证">四、测试验证</h2>
<p>测试部分，不做过多数据测试，能满足自己要求即可</p>
<h3 id="1-基础连通性测试">1. 基础连通性测试</h3>
<ul>
<li>Ping测试
<ul>
<li>ping 公网IP</li>
<li>ping 域名（如果配置了域名）</li>
</ul>
</li>
<li>端口检测
<ul>
<li>使用在线端口检测工具</li>
<li>telnet测试端口连通性</li>
</ul>
</li>
</ul>
<h3 id="2-性能测试">2. 性能测试</h3>
<ul>
<li>带宽测试</li>
<li>延迟测试</li>
<li>稳定性测试</li>
</ul>
]]></content:encoded>
    </item>
  </channel>
</rss>
