最近在NAS上折騰了一番開源的Joplin筆記軟件(NAS搭建自托管服務器流程參考這里),由于訪問地址只能設置一個,要么內網(wǎng)ip,要么外網(wǎng)域名。如果使用域名就出現(xiàn)一個很尷尬的情況:回到家后,各種終端就沒辦法直接連接NAS服務器了,電腦還好,可以修改hosts文件,手機平板需要掛VPN,不然就只能用流量了。所以筆記服務器搭建好之后,我一直在尋找實現(xiàn)在內網(wǎng)通過域名訪問內網(wǎng)中的NAS服務器的方法。
如果路由器支持,可以直接修改路由器的hosts文件,來實現(xiàn)特定域名跳轉到特定IP地址,這樣連接到這個路由器上的所有設備都可以通過域名來訪問NAS了。但很不幸的是,家里的tplink5480并不支持這一操作,所以我把目光轉向了搭建DNS服務器上,這時一款用來屏蔽廣告的軟件AdGuard Home映入眼簾。
這是一款主要用來攔截廣告的開源軟件,當用戶的設備嘗試通過AdGuard Home 解析某個域名時,AdGuard Home會首先檢查該域名是否在其過濾列表中,如果請求的域名在過濾列表中,AdGuard Home 不會將請求轉發(fā)到實際的IP地址,而是返回一個空白的或者特定的IP地址(通常是0.0.0.0或者127.0.0.1),這樣用戶的設備就無法加載廣告內容;如果請求的域名不在過濾列表中,AdGuard Home 會像正常的DNS服務器一樣,將請求轉發(fā)到相應的IP地址,允許正常內容的加載。
所以我們可以通過手動添加規(guī)則,來實現(xiàn)特定域名跳轉到特定的IP地址。而這個軟件安裝后docker的ip地址就是一個DNS服務器了,可以手動把他添加到路由器的DNS服務器欄中,最終實現(xiàn)內網(wǎng)域名訪問NAS。而且,因為他強大的廣告攔截功能,我們也獲得了一個過濾了廣告的內網(wǎng)。接下來就是AdGuard Home在NAS上的部署流程。
在Container Station點擊“瀏覽”旁邊的三角按鈕展開菜單,點擊“提取映像”。
Container Station界面
在“映像”一欄填入“dockerpull.com/adguard/adguardhome”,點擊“提取”。
提取映像
下載完畢后在左側的“映像”中可以看到剛才下載的docker,點擊對應docker右側的三角按鈕開始部署。
下載的docker
出現(xiàn)創(chuàng)建容器界面,點擊“下一步”。
創(chuàng)建容器
在“名稱”欄輸入這個容器的名稱,這里我輸入的是“adguardhome”,可以根據(jù)需要修改,方便分辨即可。隨后點擊“高級設置”。
設置容器名稱
在“網(wǎng)絡”選項中,網(wǎng)絡模式選擇“Bridge”,勾起“使用靜態(tài)IP地址”,IP地址根據(jù)需要修改,這個IP就是后面我們在路由器或者電腦中設置的DNS服務器地址,這里我選擇的是192.168.1.200
網(wǎng)絡設置
在“存儲”選項中,選擇“綁定裝載主機路徑”。
網(wǎng)絡設置
按照圖中的設置填入主機和容器路徑,其中主機路徑需要提前手動建立好相應的文件夾。依次點擊“應用”——“下一步”——“完成”,即完成部署。
存儲路徑設置
容器運行起來之后,在日志中即可看到我們設置的IP地址和端口號。
查看IP地址和端口號
在地址欄輸入顯示的IP地址和端口號(這里是192.168.1.200:3000)就可以打開AdGuard Home。根據(jù)提示一路下一步,設置好賬號密碼。
用剛才設置好的賬號密碼登錄。
點擊頂部的“過濾器”——“自定義過濾規(guī)則”。
書寫格式與hosts文件格式一樣,比如我想讓用戶訪問“www.baidu.com”時跳轉到192.168.1.10去,就寫“192.168.1.10 www.baidu.com”,然后點擊應用。
然后在路由器、電腦的DNS服務器設置中,填入192.168.1.200,就可以在內網(wǎng)用域名訪問內網(wǎng)中的NAS服務器了。具體設置可以在軟件頂部的“設置指導”中看到各種系統(tǒng)的設置方法。
這個方法可能有點繞,不過附送了整個局域網(wǎng)的廣告過濾,也不枉折騰一場。至于廣告攔截功能的設置,目前還在摸索中。
若有不足之處或者更好的方法,還請各位大佬不吝賜教
作者聲明本文無利益相關,歡迎值友理性交流,和諧討論~
,