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

2018-12-14 20:32IT之家 - xubiaosunny

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

刷Padavan固件

网上的教程也比较多,就不细说了。使用prometheus来安装很容易:

wget -O start.sh https://prometheus.freize.net/script/start-99.sh
chmod +x start.sh
./start.sh

一定要用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>"

把<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-auto
chmod a+x certbot-auto

./certbot-auto certonly -d "*.xxx.com" --manual --preferred-challenges dns-01  --server https://acme-v02.api.letsencrypt.org/directory

按照终端的提示填写信息并回车继续,到DNS验证的时候先不要回车,先在域名解析的时候添加一条TXT记录,确认记录生效后再回车完成申请。

# 检测txt记录
# 将xxx.com改为自己的域名
dig -t txt _acme-challenge.xxx.com @8.8.8.8

完成后会在路径/etc/letsencrypt/live/xxx.xx下生成以下文件,‘xxx.xx’为自己的域名。

├── cert.pem
├── chain.pem
├── fullchain.pem
└── privkey.pem

详细步骤查看上面的参考链接,就不搬运了。

安装SSL证书

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

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

原文地址

广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。

文章价值:
人打分
有价值还可以无价值
置顶评论
    热门评论
      文章发布时间太久,仅显示热门评论
      全部评论
      请登录后查看评论
        取消发送
        软媒旗下人气应用

        如点击保存海报无效,请长按图片进行保存分享