前面章節(jié)講了你可以從外網(wǎng),通過https+自己的域名(DDNS公網(wǎng)IP)+路由器端口轉發(fā)來訪問家中的飛牛nas了。但如果要訪問飛牛nas上的其他docker,甚至其他家中的設備,就需要路由器轉發(fā)不同的端口,到不同的家中設備IP和端口,證書及端口轉發(fā)配置復雜不說,端口開多了安全性也得不到保障。這時就可以用反向代理+二級域名來解決。

說的反向代理,先說一下代理。記得幾十年前,用電話線路撥號上網(wǎng),撥號的電腦上裝個代理軟件,家中其他電腦就能通過這個代理軟件一起去沖浪了。現(xiàn)在我們的需求是,外網(wǎng)訪問回來只有1個IP,如何方便地訪問家中不同IP+端口的應用,這就是反向代理。

反向代理的軟件也很多,目前比較推薦的還是nginx。nginx不只是能做反向代理,還能實現(xiàn)負載均衡、靜態(tài)網(wǎng)頁、web防火墻、訪問控制、IP地址限制、SSL/TLS加密等多種能力,nginx具有穩(wěn)定性高,資源占用小等優(yōu)點,很多網(wǎng)站都用nginx,作為家用nas也很適合。

不過看了一下飛牛nas應用中心并沒有nginx,當然飛牛nas是基于Linux內核(Debian發(fā)行版)深度開發(fā),自己安裝也沒問題(不知飛牛nas系統(tǒng)中集成了沒有,沒去研究),但nginx的配置文件操作有些復雜。好在也有Nginx Proxy Manager、NginxWebUI等管理界面來操作,就方便多了。因為應用中心沒有,就裝docker版吧。docker的教程網(wǎng)上很多,可自行搜索學習一下。

一、下載docker鏡像

飛牛nas(五、反代篇)

二、新建容器運行起來,在這里也可以直接運行,自動創(chuàng)建容器,重點注意一下配置項

飛牛nas(五、反代篇)

443:未來反向代理https訪問端口,可以用飛牛nas本機的端口去映射,考慮飛牛nas可能某些端口已占用,可以設置為其他端口,如4443

80:未來反向代理http訪問端口,同樣,可以設置為用飛牛nas本機其他端口映射,如8080

81:管理界面端口,同樣,可以設置為用飛牛nas本機其他端口映射,如8081

另外,Nginx需要保存證書和各種文件,因此,在飛牛nas文件夾管理中,新建兩個目錄,在這里進行映射,這樣,你在docker中的Nginx Proxy Manager進行的操作配置內容,都會存到你的飛牛nas文件夾管理中的這兩個目錄中。后面就算你把docker鏡像刪除重裝,只要仍按上面映射,則以前的操作配置內容就可以直接使用。

三、登錄管理npm頁面

瀏覽器訪問:http://飛牛nasIP:8081(第二步你映射的管理界面端口)

飛牛nas(五、反代篇)

第一次默認的是默認帳戶:admin@example.com 默認密碼:changeme。不同的Nginx Proxy Manager可能不一樣,可在網(wǎng)上搜索一下。進去后,按提示重新設置賬號/密碼。

四、申請自己的域名證書

前一章節(jié)講了通過路由器端口轉發(fā),使用https訪問。使用反向代理,我們也要使用https訪問保障基本的傳輸安全。要使用https訪問,首先就要為nginx安裝證書。前一章節(jié)說到,騰訊云免費證書不支持泛域名,飛牛nas不支持自動證書(目前功能界面上只能自己上傳證書)?,F(xiàn)在,可以看一下,在Nginx Proxy Manager,中如何使用免費的泛域名證書,且支持續(xù)期(免費證書期限都不長)。

先進入Nginx Proxy Manager,進入SSL Certificates菜單,添加證書

飛牛nas(五、反代篇)

這里我們選擇Let's Encrypt申請他的免費證書。關于Let's Encrypt,大家可以自行搜索一下,我的asus路由器也是用的這個免費證書。Custom則可以自己上傳證書,你可以從你的域名注冊機構去申請并下載回來,如前面的騰訊云。

為后續(xù)二級域名訪問不同的飛牛nas應用或docker或其他家中設備,這里直接申請泛域名證書。

飛牛nas(五、反代篇)

1、Domain Names:直接申請泛域名:*.xxxxx.cn,xxxxx.cn是你自己的域名(見前面章節(jié))

2、Email Address for Let's Encrypt:填個自己的郵箱吧,這個點有點奇怪,我并沒有在Let's Encrypt的網(wǎng)站上注冊過:)

3、下面就是域名的驗證了,證名域名是你的,有多種認證方式,具體要看你購買域名的服務商的支持方式了,比如用CNAME記錄的方式認證。我購買的騰訊云的,可以用DNSPod Token的方式

4、再次登錄騰訊云控制臺,進入賬號中心。前面我們是創(chuàng)建過騰訊用API密鑰(用于飛牛nas的DDNS設置,還記得吧),這次,我們要創(chuàng)建DNSPod Token

飛牛nas(五、反代篇)

同相要注意保存DNSPod Token,后續(xù)無法在騰訊云中查詢。創(chuàng)建完成后,你會得到一串大概6位數(shù)的ID和Token

5、回到Nginx Proxy Manager,勾選Use a DNS Challenge,選擇DNS provider為騰訊云的DNSPod(根據(jù)你的域名提供商選擇)

飛牛nas(五、反代篇)

重點是Credentials File Content中的參數(shù),可以看到有兩個:

1)、dns_dnspod_email:第一次我沒申請成功,后來登錄騰訊云,綁定了郵箱,錄的綁定郵箱才成功,不知是不是跟這個有關系

2)、dns_dnspod_api_token = "id,key":將在騰訊云創(chuàng)建的DNSPod Token,按格式填入。第一次我填的是騰訊云API的密鑰沒成功,后來才發(fā)現(xiàn)要用DNSPod Token的ID和Token。

6、勾選I Agree to the。。。,再save,過幾十秒,證書就申請成功了??梢栽俅卫m(xù)期或下載證書

飛牛nas(五、反代篇)

五、添加反向代理

現(xiàn)在可以添加反向代理了。不添加證書,你也可以添加反向代理,但只能使用http協(xié)議。

飛牛nas(五、反代篇)

先添加第1個反向代理,比如就是家中的飛牛nas

飛牛nas(五、反代篇)

1)、Domain Names:首先給家中的飛牛nas想個外網(wǎng)訪問好記的二級域名吧,比如nas.xxxxx.cn

2)、Scheme:因這里就是家中訪問家中了,就可以不用https,就選http吧。如果你非想要全鏈路https,就選https,需要注意訪問的家中網(wǎng)站需要安裝證書且啟用https訪問。

3)、Forward Hostname / IP:轉發(fā)到家中飛牛nas的IP

4)、Forward Port:轉發(fā)到家中飛牛nas的端口,http是8000,如果用tttps,就是8001

5)、Cache Assets(緩存)、Block Common Exploits(阻止一些常見漏洞)、Websockets Support(web的長連接,某些網(wǎng)站仍用了),按需勾選,不懂就先全勾上。

再切到SSL頁簽

飛牛nas(五、反代篇)

選擇剛申請的證書(為方便,申請的泛域名證書),再建議把下面4個去勾選上(試過不同的網(wǎng)站,有些少勾選了就無法訪問)。再Save就設置好了

六、路由器開端口轉發(fā)

前面章節(jié)說我們已經(jīng)在路由器上設置了一個端口轉發(fā)(外網(wǎng)的10080端口轉發(fā)到192.168.0.250:8001),為啥還要設置一個呢?是因為上次設置的,是外網(wǎng)https直接訪問飛牛nas服務器,現(xiàn)在我們通過nginx來反向代理,因此,我們需要重新設置一個端口轉發(fā),當然,你修改以前的端口轉發(fā)也可以,就關閉了直接訪問飛牛nas的方式了。

路由器的具體設置參考前面章節(jié),我們現(xiàn)在設置一個端口轉發(fā):

外網(wǎng)的10088,轉發(fā)到192.168.0.250:4443。為啥是4443,還記得docker運行Nginx Proxy Manager鏡像的端口映射了吧,我們是把飛牛nas上的4443,映射到了Nginx Proxy Manager的443端口。

現(xiàn)在,你在外網(wǎng),就可以使用:https://nas.xxxxx.cn:10088來訪問飛牛nas了。飛牛移動端APP,也可以使用nas.xxxxx.cn:10088來訪問(勾選HTTPS)。因目前網(wǎng)絡營運商都關閉了80、443端口,所以我們只能用類似10088這樣的其他端口來訪問。nginx反向代理設置了force ssl,所以你外網(wǎng)訪問時,直接nas.xxxxx.cn:10088,也會跳轉到https去連接。

我把訪問家中路由器也反向代理了,Nginx Proxy Manager的管理頁面也反向代理了。這樣,在外網(wǎng),我就可以通過不同的二級域名,路由器也只開放1個端口,就能訪問不同的服務器+端口的資源了。后續(xù)安裝各種docker應用,都可以在這里添加不同二級域名的反向代理就可以了。比如現(xiàn)在在外網(wǎng),用nginx.xxxxx.cn:10088,就可以訪問到Nginx Proxy Manager的管理頁面了(不過這個非常不建議放到外網(wǎng)訪問,我只是外網(wǎng)測試用)

飛牛nas(五、反代篇)

Nginx還有很多有關安全方面的設置,大家可以自行研究一下。

不過這個Nginx裝在docker中始終不爽,Nginx應該安裝在家中網(wǎng)絡中更前端的位置。后續(xù)去研究一下華碩的路由器看看有沒有辦法,如果不行的話,再看飛牛nas的應用中心的lucky(初看了一眼是個國產(chǎn)軟件,功能也挺豐富),或直接在飛牛nas中通過ssh去安裝nginx。下一篇,來看看lucky。

作者聲明本文無利益相關,歡迎值友理性交流,和諧討論~

,

聲明:本站所有文章,如無特殊說明或標注,均為本站原創(chuàng)發(fā)布。任何個人或組織,在未征得本站同意時,禁止復制、盜用、采集、發(fā)布本站內容到任何網(wǎng)站、書籍等各類媒體平臺。如若本站內容侵犯了原著者的合法權益,可聯(lián)系我們進行處理。