后续的几篇关于软路由的文章是之前相关系列的进阶篇。切入正题,早期的文章中我们介绍过内网穿透的几种解决方案,其中重点介绍过frp类网穿透的原理和配置方法。
但是frp内网穿透有个缺点就是要配置一台VPS服务器来做流量转发,如果主要业务部署在内地,在兼顾网络稳定性的前提下,同时会带来一个问题: 如何解决高昂的流量带宽成本。我们知道内地的带宽是很贵的。
而使用传统的ddns动态域名解析,就可以很好的突破带宽瓶颈的限制,以内地电信宽带1000mbps为例,一般对应的上行带宽是50mbps[6.25MB],这样的带宽拿来做远程桌面和远程办公,必然是极好的。
哪些业务场景会用到动态域名解析ddns
- 访问内网设备,比如家庭/公司内部安装摄像头监控等
- 访问内网存储设备,比如家庭/公司远程办公等需求
- 有高清带宽传输需求的场景,比如远程桌面
全文目录
1. 基础环境及准备
2. 购买域名
3. 开通公网ip的方法
4. 获取阿里云API Key和DNS Aaccess权限
5. OpenWrt端配置ddns
6. 检查DDNS域名解析是否生效
7. DDNS获取公网IP注意事项
8. 常见问题解决方案及遗留问题
-8.1. 运营商ip变化后,ddns并没有及时更新解析ip
-8.2. OpenWrt下无法对单线多拨实现ddns
1. 基础环境及准备
- 家庭/公司内网网络环境
- 准备一个域名
- 准备一个阿里云账户
- 准备公网IP地址
- OpenWrt软路由(或者ikuai+OpenWrt双软路由系统),或者提供ddns域名解析服务的路由器。
本文的实验环境是ikuai做一级主路由,OpenWrt做旁路网关。ddns配置在openwrt上完成。域名解析服务在阿里云上完成。公网IP运营商为电信网络。
2. 购买域名
由于内地运营商网络提供的公网ip不是固定的,基本上每天会重启,每天ip都会变化,如果每天记录ip地址的话会非常的崩溃。所以我们需要购买一个域名来做基于域名的动态解析,这样访问服务就只需要记住域名即可。
在网络上购买一个域名,根据自己的项目需求按需购买即可,详细的国内外域名服务商可以参考本站之前写的文章: 各大主流域名服务商盘点汇总
[wshop_paid]
3. 开通公网ip的方法
致电运营商客服,提出家里/公司安装摄像头,直接要求开通公网IP即可。不同区域的运营商可能对公网IP业务开通的服务态度不同。一句话总结: 自己想办法,各种社会工程学都用上。
一般客服会告诉你: 分配的公网IP只要区域大服务器不重启,就不会变化。
实际情况:
一般运营商会在每天早上重启服务器,公网IP会自动变化(每个地区会有所不同)。具体的时间点可以用自己的方法去摸索。
4. 获取阿里云API Key和DNS Aaccess权限
1> . 获取阿里云的api key
进入阿里云后台,启用子账户获取AccessKey(安全性考虑)
选择子账户及创建AccessKey,创建完成后记录好账户信息,后面ddns配置会用到
用户:xxxxx
AccessKey id: xxxxx
AccessKey secrect: xxxxxxxx
注意:⚠️
- 阿里云的子账户需要先在后台授权访问AliyunDNSFullAccess, 不然后续自动解析会提示txt解析失败。
- 另外,授权要充分,不然会导致ddns解析自动更新失败
建议按照如下的几个策略进行配置。
5. OpenWrt端配置ddns
1>进入openwrt后台,选择ddns服务进行配置
假设您购买的域名为mydomain.com, 你要在此一级域名上做一个名字为test的二级域名服务,域名访问格式则为:
test.mydomain.com
2> 选择ddns域名服务商,并配置阿里云ddns accessKey
3>在高级配置里面配置公网ip抓取的api接口网址: http://ip.3322.net
由于在本教程中,OpenWrt不是用作主路由拨号,无法直接通过网口获取到外网IP,所以需要选择用URL方式获取。默认提供了一个监测URL的网址,可以直接使用,如果不用这个,也可以使用其他的,比如:http://ddns.oray.com/checkip 或者 http://www.3322.net/dyndns/getip
计时器里面可以设置定时监测和强制更新ddns选项
4>填写完成后保存,保存的信息如下。选择启动后则系统会生成一个PID,PID正常则表示配置正常
6. 检查DDNS域名解析是否生效
这里有两种方法查看解析是否生效
1>回到阿里云的后台,进入域名解析服务。我们可以看到购买的域名 mydomain.com下新增了一个二级域名test的解析服务。主机记录为我们创建的二级域名名称前缀test, 记录类型为 A记录,状态显示正常。
解析成功后,阿里云的账户会收到解析成功的邮件通知
2> 通过OpenWrt 后台查看ddns解析服务日志可以查看是否解析成功
至此,基于阿里云ddns的动态域名解析服务即完成,我们在终端Ping 一下我们的二级域名
ping test.mydomain.com
则可以看到返回的公网ip地址
7. DDNS获取公网IP注意事项
- 出于业务安全或人身安全,在使用DDNS服务前务必三思,务必三思,务必三思
- 谨慎暴露内网端口到公网上,防止长时间裸奔被端口扫描
- 端口转发服务,尽量不要出现可以访问的web页面,即http或者https流量
- 解析的域名要备案,禁止架设Web 服务,80端口/443端口必封。可能会导致宽带被关停,上海地区审查度更严格。
- 如果要开口子,尽量配合vpn连接内网;或尽量使用frp来中转。
- 请合理规划内网定时重启等任务,以防止公网服务器重启后公网ip变动导致的解析失效问题
8. 常见问题解决方案及遗留问题
8.1. 运营商ip变化后,ddns并没有及时更新解析ip
解决方案:
将OpenWrt软路由或ikuai 路由器定时重启。建议定时的时间在公网ip服务器重启之后半小时。具体的时间请自己想办法统计。
8.2. OpenWrt下无法对单线多拨实现ddns
OpenWrt下的ddns插件存在一个问题:
我在主路由ikuai下配置了单线多播,但是OpenWrt下配置ddns后,无法实现动态解析,如果开启ddns会直接导致解析失败。
不过值得庆幸的是,在ikuai软路由下可以解决这个问题,请看下章分解。
[/wcm_restrict]