尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

我有服务器之——自建DDNS

我有服务器之——自建DDNS
📅 发布时间:2026/7/26 6:52:25

前言:

用花生壳很长时间了,但是发现这两年越来越不好用了。

1. 时不时的会解析到 127.0.0.2 上,问客服说技术问题,升级收费会好一些;

2. 响应慢,更换ip地址后提交变更,好久好久才能解析过来,期间要不断在cmd里 ipconfig /flushdns 刷新然后ping ,耽误事;

3. 之前的壳域名到期不让用了,新的壳域名注册不下来,合着就必须得买咯?

4. 登录要扫码,要验证,说原密码不安全等等,就是不让好好登录;

5. 不时打电话推销一波他们的收费服务……

艾玛,这可不能忍了,我就用你个DDNS服务,你给我整这么多幺蛾子,搞得我客户三天两头问我系统咋又访问不了了,

尤其是早上10点左右,正是睡觉的好时候,突然一个电话,咋连不上ERP了,咋打不开系统了,不厌其烦。

于是,我想到,我不是有域名和服务器嘛,干嘛受这鸟气,自己搭一套不就结了,于是开始查资料、找方案,受益于Ai

的巨大能力,还真让我给搞出来了,以下是基本步骤,说难不难,一下午搞定。

需要用到的文件:https://download.csdn.net/download/hsnet/93170831

步骤如下:

1. 准备域名、云服务器(宝塔系统),没有的去看看 使用阿里云服务器搭建网站环境 里的方法搞一个。

2. 域名新增两条解析;

3. 服务器安装coredns 并配置;

4. 写个php脚本,做好伪静态。

一、域名解析:

1. 域名最好短一些的,3个字母数字混拼的cn域名就不错,挑个好记的;

2. 在解析后台新增一个 A 记录,将一个域名解析到你的服务器(域名可以是二级也可以是三级,我这里用的三级)

3. 根据你的情况选择 二级 还是 三级 域名

主机记录记录类型记录值备注
dAxx.xx.xx.xx 你的服务器ip地址三级方式
dNS

你的域名:如 j64.cn

三级方式
*Axx.xx.xx.xx 你的服务器ip地址二级方式(可选)
*NS你的域名:如 j64.cn二级方式(可选)

二、建立网站

1. 在宝塔中建立网站 ddns.j64.cn(这里改成你自己的域名),选 php8 及以上。

2. 在根目录中建立文件:hosts.conf ,用于保存解析记录;

3. 建立目录:ph ,在 ph 目录建立 update.php 文件(这里用这个是为了兼容花生壳)

4. 编写如下文件内容:

<?php // ====================== 配置区 ====================== $hosts_file = '/www/wwwroot/ddns.j64.cn/hosts.conf'; // 访问密钥 $access_token = 'token'; $input_token = $_GET['token'] ?? ''; // ==================================================== // 1. 鉴权校验 token if ($input_token !== $access_token && false) { exit(json_encode([ 'code' => 403, 'msg' => '访问令牌错误,拒绝操作' ], JSON_UNESCAPED_UNICODE)); } // 2. 获取请求参数 $input_myip = trim($_GET['myip'] ?? ''); $hostname = trim($_GET['hostname'] ?? ''); // 3. hostname 非空校验 if (empty($hostname)) { exit('nohost'); } // 4. 处理IP:有传入则校验,无传入取客户端真实IP if ($input_myip !== '') { // 校验传入IP是否合法IPv4 if (!filter_var($input_myip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) { exit('iperr1'); } $target_ip = $input_myip; } else { // 自动获取客户端真实IP,兼容反向代理 if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && !empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip_arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $target_ip = trim($ip_arr[0]); } elseif (isset($_SERVER['HTTP_REAL_IP']) && !empty($_SERVER['HTTP_REAL_IP'])) { $target_ip = trim($_SERVER['HTTP_REAL_IP']); } else { $target_ip = $_SERVER['REMOTE_ADDR']; } // 校验自动获取的IP合法性 if (!filter_var($target_ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) { exit('iperr2'); } } // 5. 读取 hosts.conf 文件内容 $file_content = ''; $old_line_ip = ''; $file_exists = file_exists($hosts_file); if ($file_exists) { $file_content = file_get_contents($hosts_file); if ($file_content === false) { exit('fileerr'); } // 正则匹配当前hostname对应的旧IP $pattern = '/^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+' . preg_quote($hostname, '/') . '$/m'; if (preg_match($pattern, $file_content, $match)) { $old_line_ip = $match[1]; } } // 6. 判断IP无变化,直接退出不修改文件、不重载服务 if ($old_line_ip === $target_ip) { exit('nochg'); } // 7. 替换/新增hostname对应的IP行 $lines = explode(PHP_EOL, $file_content); $found_match = false; $new_lines = []; foreach ($lines as $line) { $trim_line = trim($line); // 匹配当前主机名的旧行,替换IP if (preg_match('/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\s+' . preg_quote($hostname, '/') . '$/', $trim_line)) { $new_lines[] = $target_ip . ' ' . $hostname; $found_match = true; } else { // 保留其他原有行不变 $new_lines[] = $line; } } // 文件内无此hostname,则追加新行 if (!$found_match) { $new_lines[] = $target_ip . ' ' . $hostname; } // 组装新文件内容 $new_file_content = implode(PHP_EOL, $new_lines); // 写入 hosts.conf $write_result = file_put_contents($hosts_file, $new_file_content); if ($write_result === false) { exit('fileerr2'); } // 返回更新成功信息 exit('good');

5. 需要兼容花生壳的,还可以加上重写规则:

rewrite ^/ph/update$ /ph/update.php last;

三、安装配置:

1. 打开 linux 终端,输入下面命令;

#在终端中使用 下载coredns wget https://github.com/coredns/coredns/releases/download/v1.11.3/coredns_1.11.3_linux_amd64.tgz #在终端中解压程序 tar xzvf coredns_*.tgz && sudo mv coredns /usr/local/bin/ #创建目录: sudo mkdir -p /etc/coredns

2. 编辑配置文件/etc/coredns/Corefile 内容

.:53 { log # 打印所有DNS请求日志 errors # 输出解析错误 reload 6s # 配置文件修改自动重载 cache 60 # 缓存解析结果60秒 loadbalance # A记录轮询负载均衡 hosts /www/wwwroot/ddns.j64.cn/hosts.conf { reload 6s ttl 300 fallthrough } forward . 223.5.5.5 223.6.6.6 { max_concurrent 1000 health_check 5s policy random } loop }

四、安装服务

1. 创建服务文件/etc/systemd/system/coredns.service

[Unit] Description=CoreDNS DNS Server After=network.target‌‌:ml-citation{ref="20,22" appearance="aggregated" data="citationList"} [Service] ExecStart=/usr/local/bin/coredns -conf /etc/coredns/Corefile Restart=on-failure User=root [Install] WantedBy=multi-user.target

2. 启动服务:

sudo systemctl daemon-reload && sudo systemctl enable coredns && sudo systemctl start coredns

五、使用方法:

http://ddns.j64.cn/ph/update.php?token=token&hostname=主机名&myip=IP地址

token :token 作为验证字符,可以自己修改

主机名:你设置的比如:xx.d.j64.cn

IP地址:可以不填,会自动用自己当前的地址

相关新闻

  • 分享学习C语言代码思维和逻辑第四次记录
  • Rust 里给模型抽帧的三种写法:shell-out ffmpeg、手写解码循环、还是进程内一行
  • TVA-World架构在工业质检领域的革命性突破(16)

最新新闻

  • UE5 C++开发中LNK2019链接错误的系统性排查与解决指南
  • Goldberg模拟器:绕过Steam DRM实现单机游戏离线运行的原理与配置指南
  • CC27xx无线MCU SYSTIM模块:高精度定时器原理、配置与实战应用
  • Claude Code全栈编程伙伴技术解析与实践
  • AI Agent认知发展模拟:从婴儿到青少年的渐进式学习
  • 基于Claude构建个性化AI数字分身的技术实践

日新闻

  • 大连理工大学与东京大学联手打造的“主动型AI助手“
  • 170.2026年国家级科研瓶颈:超精密单点金刚石切削(SPDT)光学表面生成
  • SongBloom:革命性歌曲生成框架深度解析——如何通过交织自回归与扩散模型创作完整音乐

周新闻

  • 大连理工大学与东京大学联手打造的“主动型AI助手“
  • 170.2026年国家级科研瓶颈:超精密单点金刚石切削(SPDT)光学表面生成
  • SongBloom:革命性歌曲生成框架深度解析——如何通过交织自回归与扩散模型创作完整音乐

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号