极简开始方式已更新,请点击移步
介绍
在家里搭建一些私有服务时,如果没有公网ip,就无法通过外网访问。这个时候我们一般有三个方案:
- 方案一,打电话让运营商分配一个公网ip
- 方案二,使用ipv6
- 方案三,使用内网穿刺
本文不涉及内网穿刺服务。所以方案三在本文没有任何剩下的讨论内容。
方案一和方案二涉及一个问题,就是公网ip的变化。如果公网ip变化了,就无法通过原有的ip访问到服务。这个时候我们就需要动态的更新域名解析。这个过程就叫做ddns。
准备操作
1. 注册cloudflare账号
本文不会详细将这个,请参考其他教程。
2. 获取cloudflare的api key
- 访问https://dash.cloudflare.com/profile/api-tokens,右上角处可以切换为简体中文
- 点击创建令牌,选择编辑区域DNS模板
- 名称任意填写
- 令牌权限选择编辑区域DNS,令牌的权限务必选择
- 区域-区域-读取
- 区域-dns-编辑
- 区域资源,选择需要用于ddns的域名
- 客户端IP(可选),这个用于区别调用客户端的白名单,由于本文讲解ddns,本身访问的公网IP就是动态的,所以这里最好不要填写
- TTL,定义此令牌将保持活动状态的时间长度。这个不需要填写
完成后点击创建令牌,并拷贝token
3. 获取zone id
- 访问https://dash.cloudflare.com/
- 选择需要用于ddns的域名
- 页面右下角即可看到zone id
4. 配置客户端(JVM版本)
本文当前版本采用cloudflare-ddns 项目作为ddns客户端,项目基于kotlin开发,当前仅提供jar版本,后续会提供native版本。
Java安装
本项目采用jdk17作为目标环境,所以需要安装jdk17,此处不会详细介绍。
下载jar包
访问cloudflare-ddns的release页面 下载最新的jar包到本地任意位置
配置文件
在jar包同级目录下创建config.json5
文件,内容如下:
|
|
运行jar包
直接运行
|
|
直接运行的方式可以使用nohup/tmux/screen等方式后台运行
也可配合systemd使用(尚未验证)
|
|
|
|
|
|
4. 配置客户端(原生版本)
当前原生版本仅支持linux x64,后续会提供更多平台的支持。
(建设中…