写在前面
我们很多人的家中都没有静态的 IP 地址,亦或者只提供动态的 IP 地址。但动态 IP 会在你每次重启路由器或者光猫时变化,导致我们不能使用 IP 来访问我们的内网服务。这就需要使用动态域名解析服务了,最简单的方式就是使用 DDNS-Go 这个项目。
DDNS-Go 可以帮助用户轻松地将自己的域名解析到动态 IP 地址,从而通过域名来实现外部访问的目的。
跟着我这个教程,可以特别轻松就实现外部访问。
本教程以 openwrt + DDNS-Go + cloudflare 为例
第一步:你需要提前准备或开通服务
- openwrt 软路由一台
- 光猫模式为桥接(路由器拨号) (上海电信云宽带需要到营业厅关闭后才能改为桥接)
- 联系运营商开通动态公网IP
- 一个域名
- cloudflare账号
第二步:在 openwrt 上安装 DDNS-Go
登录 openwrt,前往 > 系统 > 软件包 > 更新列表,完成后关闭,再在过滤器中输入 “ddns” 找到对应的 “ddns-go-zh-cn” 中文包,点击安装,会自动安装依赖的软件及其它。
(我图中为已安装,未安装点击 “可用” 找到对应的插件)刷新 openwrt 页面,前往 > 服务 > DDNS-Go (有则为安装成功)。
点击 “启用” (先不要点 “打开 Web 界面”)
第三步:前往 DDNS-Go 快速设置用户名及密码
- 因 DDNS-Go 的一些限制,超过5分钟将无法保存。我们先设置用户名及密码后,再进行后续配置。
- 点击 openwrt 上 DDNS-Go 的 “打开Web界面”,在页面中往下滑,找到用户名及密码,设置好后保存。
第四步:前往 cloudflare 申请 Token
前往 cloudflare
我的设定档 > API权杖 > 建立Token > 选择第一个“編輯區域 DNS” > 使用范本。(地区不同翻译会有所不同)
将区域资源改为 “所有区域” > 继续至摘要。
复制你的 Token 。 (请妥善保管,只显示一次)
第五步:返回 DDNS-Go 进行配置
回到 DDNS-Go 页面,在 DNS 服务商版块选择 Cloudflare ; 在 Token 填入你申请来的 Token 。
在 IPv4 版块填入你的域名,可以是二级域名或多个域名 (如:ddnsgo.example.com)。点击保存。
点击页面右上角 “日志” ,可以查看你当前的 IP 地址。
第六步:在 Cloudflare 进行配置
- 进入域名的 DNS 设置,新增记录。
- 新增一个 A 记录,在名称填写 ddnsgo (以:“ddnsgo.example.com”为例),在 IPv4 地址填写你在 DDNS-Go 日志中查看到的 IP 。
- 关闭 Proxy 小云朵,并保存。
到这里,你所有的配置都已经完成。
接下来我们设置一下端口转发,这样才能保证我们在公网可以访问家里的设备。
这里以从公网访问 openwrt 为例。
登录 openwrt ,前往 > 网络 > 防火墙 > 端口转发
点击添加
- 名称: openwrt (自行设置)
- 地址族限制: 仅 IPv4
- 外部端口: 41365 (3-5 位随便,不使用常见的 80/443 等,不报错即可)
- 内部 IP 地址: 选择自己的 openwrt
- 内部端口: 80
- 手机使用数据进行测试,在浏览器输入 “http://ddnsgo.example.com:41365” 即可访问。
- 其他你需要远程的服务同样需要增加端口转发。