网站首页 > 精选教程 正文
https://github.com/yyqian/aliyun-ddns
利用阿里云解析的 API 实现动态域名解析的功能(类似花生壳,例如定时地将自己的域名解析更新为家中当前的 IP 地址)。
没有 npm 依赖, 只用了三个原生 Node.js 的模块: http, crypto, url
目前该工具分为两种模式的版本:
client-mode 推荐使用该模式,部署更为简单,无需云服务器资源,但要求客户端有 Node.js 的执行环境。
server-mode 适合一些客户端无法安装 Node.js 环境的场景(例如路由器)
使用前提
Client Mode
使用场景
客户端部署(crontab 定时调用)
- 复制 client-mode/config-sample.json 并命名为 client-mode/config.json
- 修改 client-mode/config.json 中的内容, 参数说明见下面
- 参照 client-mode/client.sh 写个 shell script
- 让脚本可运行: chmod 775 client-mode/client.sh
- 编辑 crontab: crontab -e
- 添加记录, 让脚本 5 分钟调用一次: */5 * * * * /path/to/client-mode/client.sh
- 重启 cron 服务
client-mode/config.json 参数说明
Server Mode
使用场景
服务器端程序部署
- 复制 server-mode/config-sample.json 并命名为 server-mode/config.json
- 修改 server-mode/config.json 中的内容, 参数说明见下面
- 用 pm2 或其他方式启动 server-mode/app.js;如果运行环境有 Docker,也可以直接 docker-compose up 来启动服务
- 进行必要的网路配置(譬如 Nginx 反向代理, 防火墙等), 确保应用服务能在公网中被访问到
config.json 参数说明
客户端手动调用
调用的原理和花生壳类似, 假设在 config.json 中 path 属性是默认的 /hack, 有两种调用方法:
- 在客户端调用 /hack?hostname=foo.bar.com 来设定 foo.bar.com 解析为当前客户端的公网 IP
- 在客户端调用 /hack?hostname=foo.bar.com&ip=xxx.xxx.xxx.xxx 来设定 foo.bar.com 解析为 xxx.xxx.xxx.xxx
客户端 crontab 定时调用
- 参照 server-mode/client.sh 写个 shell script
- 让脚本可运行: chmod 775 server-mode/client.sh
- 编辑 crontab: crontab -e
- 添加记录, 让脚本 5 分钟调用一次: */5 * * * * /path/to/server-mode/client.sh
- 重启 cron 服务
安全事项
由于在 server-mode 中,服务端暴露的 API 未加任何身份验证措施,相当于是把阿里云解析的修改、添加 API 暴露在了外界,所以一定要注意入口地址的隐藏。
猜你喜欢
- 2024-10-09 「每天一个知识点」简述从单机至亿级流量网站系统架构的演进过程
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)