綠聯 NAS 域名直連 DDNS-Go+IPv6 內網穿透並開啓 HTTPS

關鍵字:綠聯 DX4600、域名直連、動態域名解析、內網穿透、光貓、nas、docker、ddns-go、ipv6、nginx proxy manager、ssl

前言

我是業餘 nas 玩家,折騰了兩天,此篇是我自己的筆記和總結(篇尾有彩蛋),希望能夠爲大家實現域名直連 nas 貢獻個人智慧、提供個人方案,但更多的還是和大家溝通交流。還請大家切記,只有把筆記同個人具體實際相結合,才能探索出屬於自己的解決方案

“但這一切值得嗎”x1 ——《冰汽時代》

另外,我使用的是綠聯 DX4600+(雙十一新購),綠聯 DX4600 系列都支持 docker,固件版本 3.0.0 開始支持 ipv6 / 域名直連登錄,請確保固件版本最新

捋清思路

    1. 公網 ipv4 地址存量少、申請難,因此如果想要外網訪問 nas,那就要使用 ipv6(數量多到可以爲地球上的每一粒沙子都分配一個地址)

    2. 但是,ipv6 地址根本不是人能記住的,因此需要同域名綁定,域名記起來就簡單多了

    簡單補充一下網絡知識:訪問域名時,會向 dns 服務器查詢這個域名對應的 ip 地址(dns 服務器可以簡單看作 域名 - ip 對照表),拿到 ip 地址後就知道了設備在網絡中的位置(ip 地址可以比喻成你家門牌號),就可以向設備發起請求

    3. 可是,運營商分配 ipv6 地址一般是動態變換的,也就是說可能三天兩頭就會變一次,因此需要動態更新域名綁定的 ipv6 地址,這就用到了 ddns(動態域名服務 dynamic dns),將變化的 ipv6 地址綁定到固定的域名上。ddns 的作用就是動態更新 dns 服務器上域名和 ip 地址的對應關係

    4. 至此,外網訪問 nas 還差最後一步,就是通過防火牆,因爲防火牆會過濾 ipv6 流量,所以需要關閉光貓和路由器的防火牆,接着就能外網訪問 nas 了

    5. 補充:域名開啓 https 會在後面介紹,關閉防火牆將使設備暴露在公網,有安全問題,後續會簡單提及

    前期準備

      1. 域名購入,推薦騰訊雲或阿里雲,我這裏用的騰訊雲,具體不再贅述

        2. 進入控制檯 - 雲解析 DNS,開啓域名解析(點擊添加域名,按步驟來即可,如果遇到問題可以先查查騰訊雲文檔,有詳細教程和步驟)

          3. 檢查電腦和綠聯 nas 是否開啓 ipv6

          Windows:控制面板 - 網絡和 Internet(查看網絡狀態和任務)- 更改適配器設置

          檢查無線和有線網絡(右鍵 - 屬性)中,ipv6 是否已安裝

          綠聯 nas:設備管理 - 網絡設置 - 有線網絡 - ipv6 地址開啓

            4. 檢查代理軟件是否開啓 ipv6(若沒開代理軟件,跳過這一步

            以小藍貓爲例,如圖所示,開啓 ipv6

              5. 檢查光貓和路由器是否開啓 ipv6

              路由器比較簡單,進入路由器後臺管理界面開啓 ipv6 即可

              光貓比較棘手,但通常情況下已經開啓 ipv6,先進行下一步 ipv6 連通性測試,如果通過就暫時不用管光貓,若不行,用超級管理員賬號進入光貓後臺(192.168.1.1)開啓

              下圖爲光貓常見的超管初始賬密,如果進不去,可能要另闢蹊徑了,這就是棘手的部分...

              老光貓的 ip 協議版本是無法直接更改的,需要刪除再新建配置

              刪除前一定要截圖備份配置信息,刪除前一定要截圖備份配置信息,刪除前一定要截圖備份配置信息,特別是 vlan id 和撥號賬戶密碼。撥號賬號密碼忘記沒事,但這個 vlan id 要有,新建配置時要填(若是真忘記了請找客服,移動是 10086)

                6. 測試是否通過 ipv6 檢測(https://www.test-ipv6.com/)

                DDNS-Go 動態更新域名解析

                ddns-go 是一個很好用的 ddns 程序,可以自動添加並更新域名綁定的 ip 地址

                  1. 啓動 docker,在鏡像倉庫搜索 ddns-go 並下載(鏡像管理 - 鏡像倉庫)

                  如果拉取速度過慢,試試更改鏡像源(基本信息 - 鏡像源設置)爲網易雲鏡像,或者騰訊雲鏡像(在自定義那欄輸入 https://ccr.ccs.tencentyun.com/)

                    2. 下載完畢後,創建容器(鏡像管理 - 本地鏡像 - 找到 ddns-go - 創建容器)

                      3. 容器參數配置(注:我直接拿配置好的演示,界面略微不同)

                      容器重啓策略改成 總是(always),如果 docker 設置了開機自啓,容器 ddns-go 也會自動啓動,除非手動停止(點擊右邊的問號可查看各策略的意思)

                      網絡模式選擇 host

                      設置配置存放位置,文件夾名稱可以任意,但裝載路徑一定得填 root

                      容器端口保持 9876 就行。如果本地端口衝突,把網絡改成 bridge 模式,本地端口不填(會自動設置)

                      啓動容器,並打開 ddns-go 管理界面

                        4. ddns-go 參數配置

                        dns 服務商選擇 DNSPod,然後點擊“創建 DNSPod Token”,跳轉到騰訊雲 DNSPod 界面,不出意外的話已經自動登錄了(注:DNSPod 已被騰訊收購,DNSPod 解析和騰訊的互通)

                        點擊創建祕鑰,祕鑰 token 記得保存下來,只顯示一次,然後把 id 和 token 填入 ddns-go(見上圖)

                        ipv4,沒有,不啓用

                        ipv6,啓用,域名部分填入二級域名(比如你的一級域名是 example.cn,可以填 nas.example.cn,方便記憶),之後 ddns-go 會幫我們自動創建並添加解析記錄(這個後文會說明)。獲取 ip 方式選擇通過網卡獲取

                        禁止公網訪問 ddns-go 管理界面,勾選

                        配置完畢,點擊保存,然後去 DNSPod 檢查是否多了一條記錄

                          5. 驗證內網是否可以訪問,兩個辦法:

                          ① 測試內網能不能 ping 通域名,能 ping 通說明內網訪問正常

                          ② 打開綠聯 web 端地址(你填入 ddns-go 的域名 + 端口號 9999,9999 是綠聯默認端口號,例如 nas.example.cn:9999),能打開說明內網訪問正常

                          “至此已經成功了一半”

                          打通外網訪問

                            1. 驗證外網是否可以訪問,兩個辦法:

                            ① 測試公網能不能 ping 通域名,能 ping 通說明公網訪問正常

                            打開 https://ipw.cn/ipv6ping/ 進行 ipv6 ping 測試,多 ping 幾次(因爲有可能是 ping 服務器的問題),如果能 ping 通會顯示 ip 地址和響應時間,如果 ping 不通,則顯示 ping failed

                            手機流量下打開綠聯 web 端(這個方法最簡單),能打開說明外網訪問正常

                            以下是手機流量下(外網)訪問成功的界面(可以看到綠聯沒做移動端適配...不好意思,老職業病了

                            注:手機 edge 瀏覽器有緩存機制,如果你之前連接 wifi 時訪問過綠聯 web 端,先關閉這個頁面,並重啓手機 edge 瀏覽器,然後再重新訪問

                              2. 如果外網無法訪問,則需要關閉光貓和路由器防火牆,放行 ipv6 流量

                              先放一張示意圖,輔助理解(非網絡從業者,圖示內容目的只是輔助理解

                              關閉路由器防火牆

                              關閉光貓防火牆(ipv6 session 防火牆)。中提到“要檢查光貓是否開啓了 ipv6”,因爲一般都是開啓,所以可以暫時不管光貓,但這一步是必須的(該來的還是要來的)

                              使用超級管理員賬號進入光貓後臺(192.168.1.1),如果使用 前期準備 中列出的超管賬號進不去光貓,那你得求助萬能的搜索引擎或者運營商客服了...

                              這裏以移動老光貓爲例,關閉 ipv6 session 防火牆,然後等待一會即可

                                3. 再次驗證外網是否可以訪問,同樣採用步驟 1 的兩個方法

                                開啓 HTTPS

                                  1. 申請 ssl 證書(依然是用騰訊雲)

                                  進入控制檯 - SSL 證書 - 我的證書 - 申請免費證書(免費證書的額度不是一次性的,證書吊銷或正常到期後額度會釋放,證書有效期一年,到期後需要續期)

                                  證書申請一般幾分鐘就能審覈通過

                                  然後下載證書文件,後面要用到

                                    2. 部署 nginx proxy manager(nginx 反向代理我懂得不多,所以後續我會少說點話

                                    爲什麼選擇 npm(注:後文將 nginx proxy manager 簡稱爲 npm,此 npm 非 node package manager,本文不涉及 node.js)

                                    因爲它界面好看(連理由都是那麼的優雅!優雅至極!

                                    和部署 ddns-go 那會一樣,在 docker 鏡像倉庫搜索 nginx-proxy-manager(注意橫杆是必須的,不然搜不到)

                                    因爲這個鏡像很大(800+MB),如果多次拉取失敗,請嘗試將鏡像源改成 docker 官方源(慢是慢了點,但不容易出錯)

                                    下載完畢後創建容器,配置容器參數(同樣,這裏也是拿已經創建好的容器演示,界面會有略微不同)

                                    重啓策略選擇 總是(always),作用不再贅述

                                    網絡選擇 bridge

                                    文件夾一個存放數據,一個存放證書,名字可以自己設定,但裝載路徑要和圖示一致

                                    更改容器本地端口,因爲運營商會封鎖 80、443 端口,所以端口改成了 11 開頭,方便記憶

                                    配置完畢,啓動容器,打開 npm 管理頁面,默認的賬號密碼是 admin@example.com 和 changeme

                                    第一次進入管理頁面會讓你設置名字並修改賬號密碼

                                      3. 配置 nginx proxy manager

                                      添加 ssl 證書

                                      上傳 key 和 crt 兩個文件即可,然後點保存

                                      設置代理服務

                                      按圖所示配置

                                      如果忘記了綠聯 ip 地址,可以從 設備管理 - 網絡設置 中查看(前文提到的開啓綠聯 ipv6 地址的地方)

                                      添加 ssl 證書,選擇剛纔創建好的 ssl 證書,最後點擊保存

                                        4. 打開瀏覽器,訪問綠聯 web 端,端口號改成 11443,如 nas.example.cn:11443,不出意外,已經能夠 https 訪問了

                                        域名直連 nas

                                          1. 綠聯 nas 開啓本地登錄(網絡服務 - 本地賬號)

                                            2. 域名直連登錄 nas

                                            "至此,結束"

                                            安全問題

                                            由於防火牆不能像雲服務那樣設置安全組來放行端口,因此需要整個關閉,這樣會使內網設備暴露在外,引發安全問題,但是得益於 ipv6 地址的動態變化和巨大存量,遇到安全問題的概率幾乎爲 0

                                            對於一些路由器,比如榮耀或華爲的,除了互聯網防火牆之外還設了一道局域網防火牆,能夠檢測黑客攻擊網絡,控制智能家居設備的行爲,這使得安全性又得以進一步提高

                                            結語

                                            就現階段來看,自己弄域名直連和內網穿透有點多次一舉,因爲綠聯 nas 內置內網穿透服務,可以外網訪問 nas,就算綠聯服務器掛了,也可以局域網本地連接登錄,此時若想外網登錄,域名直連才能發揮作用。而自己設置的 域名 + ipv6 的登錄方式,需要關閉防火牆,進而引發安全問題(雖然概率極低)

                                            局域網本地登錄

                                            “但這一切值得嗎”x2 ——《冰汽時代》

                                            彩蛋

                                            彩蛋的彩蛋

                                            雙十一換新

                                            更多遊戲資訊請關註:電玩幫遊戲資訊專區

                                            電玩幫圖文攻略 www.vgover.com