主题 : IT之家网学院:小米路由器3使用namecheap的DDNS实现远程https访问
级别: 六行秋雁
UID: 293245
精华: 0
发帖: 20580
威望: 3718 点
无痕币: 48583 WHB
贡献值: 0 点
在线时间: 965(时)
注册时间: 2017-11-04
最后登录: 2019-04-19

0 IT之家网学院:小米路由器3使用namecheap的DDNS实现远程https访问

由于官方固件不支持ipv6(现在国家大力推进ipv6部署,手机端目前三大运营商都已支持,带宽还没宣布支持),而且社区大神搞得MT工具箱我这也一直有问题。于是半个多月前我又将我的小米路由器3刷回了Padavan,可一直也没做个记录,今天刚好公司也没啥事,就整理一下。

刷Padavan固件
网上的教程也比较多,就不细说了。使用prometheus来安装很容易:
wget -O start.sh https://prometheus.freize.net/script/start-99.shchmod +x start.sh./start.sh[/pre]一定要用Ubuntu 16.04 TLS系统来刷,我试过使用Ubuntu 18.04 TLS,过程会有报错,懒得解决,还是使用推荐的系统比较好。Padavan官方Wiki上写的也是用Ubuntu 16.04 LTS。

刷机过程的语言是根据你系统的语言来的,当然设置中文得下载中文语言包。
也可以克隆Padavan项目自己编译,但得主机根据自己的路由器配置参数,项目地址:https://bitbucket.org/padavan/rt-n56u/
namecheap动态DNS
我之前有在namecheap购买一个域名,也就是xubiaosunny.online,我博客的子域名就是用的这个。可以在分一个子域名给家里的路由器。正好也支持动态DNS。文档地址
https://www.namecheap.com/support/knowledgebase/article.aspx/36/11/how-do-i-start-using-dynamic-dns
首先打开Advanced DNS

打开DYNAMIC DNS

添加一条A+ Dynamic DNS record,Value随便填,因为是动态dns,到时候回跟着你家里的公网ip动态解析,可以填为127.0.0.0,Host填写为你自己的,比如mi3。

为新添加A+ Dynamic DNS record动态更新IP地址,namecheap提供有一个客户端软件,但是我觉得没有必要,因为该软件是.exe文件,家庭网络的公网地址每次拨号都会改变,所以你时刻都得通知namecheap修改ip,那么你就得24小时开着一台windows电脑来跑这个程序,完全没必要。
当然namecheap还提供了其他更新IP的方式,通过浏览器动态更新
https://www.namecheap.com/support/knowledgebase/article.aspx/29/11/how-do-i-use-a-browser-to-dynamically-update-the-hosts-ip
这个正合适,浏览器访问其实就是http请求,我们在路由器上挂个crontab就可以搞定。
ssh到路由器终端使用crontab -e,或者直接在路由器后台界面添加一条任务。
0 * * * * curl "https://dynamicdns.park-your-domain.com/update?host=<your_host>&domain=<your_domin>&password=<your_password>"[/pre]把<your_host>,<your_domin>,<your_password>替换为你你自己的。password是你开启DYNAMIC DNS页面的Dynamic DNS Password


现在是每小时更新一次,想修改更新频率修改crontab任务.
二级路由器端口转发
因为我的路由器上面还有个光猫,所以要在光猫上做个端口转发,如果你是路由器直接拨号由公网IP那么就不用这么做了。我是配置了DMZ,也可以用虚拟主机配置来转发相应的端口,效果是一样的。

配置https访问
其实到此理论上已经可以通过动态域名访问路由器的后台页面了,但需要把服务端口改一下,英文运营商一般都封了80和443端口。我们可以把端口改为‘8443’,并开启‘Https’

【Web 服务器 HTTPS 证书】点击【生成】以生成HTTPS证书(这个操作得等几分钟)
现在真的可以通过域名来访问后台了,比如https://mi-r3.xubiaosunny.online:8443
申请认证的SSL证书
到这一步访问的话,浏览器会标记为不安全,那么现在需要申请一个“可以让浏览器标记为安全”的SSL证书。这里我使用Let's Encrypt,使用certbot来免费申请证书,当然也可以使用阿里云啥的申请一个免费的证书,包括我们公司也支持免费证书的申请。
参考地址:https://www.hi-linux.com/posts/6968.html
申请证书的还用刷机的那台Ubuntu就可以,将*.xxx.com改为自己的域名,比如*.xubiaosunny.onile
wget https://dl.eff.org/certbot-autochmod a+x certbot-auto ./certbot-auto certonly -d "*.xxx.com" --manual --preferred-challenges dns-01  --server https://acme-v02.api.letsencrypt.org/directory[/pre]按照终端的提示填写信息并回车继续,到DNS验证的时候先不要回车,先在域名解析的时候添加一条TXT记录,确认记录生效后再回车完成申请。

# 检测txt记录 # 将xxx.com改为自己的域名dig -t txt _acme-challenge.xxx.com @8.8.8.8[/pre]完成后会在路径/etc/letsencrypt/live/xxx.xx下生成以下文件,‘xxx.xx’为自己的域名。

├── cert.pem├── chain.pem├── fullchain.pem└── privkey.pem[/pre]详细步骤查看上面的参考链接,就不搬运了。

安装SSL证书
打开 cert.pem、fullchain.pem、privkey.pem拷贝里面的内容按下图对应粘贴到对应位置,保存。(如果打开文件权限不足,尝试使用root用户)

现在我们就可以看到安全的小锁了😄

原文地址
级别: 六行秋雁
UID: 293245
精华: 0
发帖: 20580
威望: 3718 点
无痕币: 48583 WHB
贡献值: 0 点
在线时间: 965(时)
注册时间: 2017-11-04
最后登录: 2019-04-19

             ▏
     ◢◣  ▏      ▏
  ▏      ◢祝福◣◢◣   ▏     ▏
  ▏       ●     ◢██◣  ◢◣  ▏
  ▏   ▏      ●     ◢朋友◣◢◣
  ▏   ▏   ▏           ◢◣◢██◣
  ▏   ▏    ◢◣      ◢新春◣ ●
  ▏  ◢◣◢██◣        ●    ▏
 ◢◣◢快乐◣ ●    ▏           ▏  
◢██◣◢◣    ▏         ▏        ▏
  ● ◢猪年◣◢◣        ▏        ▏
    ●    ◢██◣   ◢◣     ▏
        ●       ◢大吉◣    ◢◣
              ●        ◢██◣
                 ●  
   ▇▇▇▇ .           ▇▇▇▇ .        ▇▇▇▇          ▇▇▇▇
◢▇▇▇▇◣       ◢▇▇▇▇◣   ◢▇▇▇▇◣    ◢▇▇▇▇◣
▇春节快乐▇.   ▇生活愉快▇   ▇吉祥如意▇   ▇合家欢乐▇
◥▇▇▇▇◤    . ◥▇▇▇▇◤     ◥▇▇▇▇◤   ◥▇▇▇▇◤  
   ▇▇▇▇ .          ▇▇▇▇ .         ▇▇▇▇         ▇▇▇▇    
       | | |                     | | |                   | | |                  | | |
Total 0.073277(s) query 4, Time now is:04-16 22:24, Gzip enabled 粤ICP备07514325号-1
Powered by PHPWind v7.3.2 Certificate Code © 2003-13 秋无痕论坛