由於官方固件不支持 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 用戶)

現在我們就可以看到安全的小鎖了😄

原文地址

相關文章