大家好,熟悉我文章的應(yīng)該都知道我喜歡推薦NAS。但是玩NAS,除了白群白威聯(lián)通這些自帶遠程訪問服務(wù)的產(chǎn)品外,想在外面訪問自己的NAS,是一件比較麻煩的事情。而且即便用這些廠商提供的遠程服務(wù),不管是速度還是延遲都很高,畢竟服務(wù)器在國外。如果你是黑裙,unraid這類的話,那連這種高延遲的訪問服務(wù)都沒辦法享受。所以到底怎么在外訪問自家NAS呢 ? 想要在外面訪問自家NAS,在沒有QC或者my qnap這類廠商提供的服務(wù)情況下,有兩種情況。第一種,自己的寬帶有公網(wǎng)IP,那可以直接轉(zhuǎn)發(fā)端口出去。這么干好處是能跑滿你家上傳,但是現(xiàn)在各地查PCDN和個人寬帶架設(shè)web服務(wù)很嚴格,這么干一是不合法,二很容易導(dǎo)致運營商停你寬帶,我已經(jīng)被聯(lián)通警告過然后寫保證書了,所以最好別這么干。 第二條路就是走內(nèi)網(wǎng)穿透了,不管你有沒有公網(wǎng)IP,這個方法都適合,比如我就有公網(wǎng)IP,但是運營商查得嚴的情況下,我只能走這條路,缺點就是速度受到你架設(shè)的轉(zhuǎn)發(fā)服務(wù)器的帶寬限制。大概三四年前我出過一期內(nèi)網(wǎng)穿透教程,但是出的太早,現(xiàn)在早已經(jīng)不再適用了。所以這次來教大家,怎么去做內(nèi)網(wǎng)穿透。 當(dāng)然,這里說個前提,你內(nèi)網(wǎng)穿透,架設(shè)NAS的web服務(wù),也不是直接就能架的。需要完成ICP備案才能正常訪問,否則你即便架設(shè)好了,也是下圖中這個結(jié)果。不過這種情況僅限于你綁定域名的情況下,不綁定域名的話,直接輸入IP地址和你轉(zhuǎn)發(fā)出去的端口號,是可以直接訪問的。如果想要備案,阿里云和騰訊云都提供了備案服務(wù),但是具體備案時間需要多久不確定,一般一個月到半年,中間可能會因為資料問題重審。 好了,說了這么多,那現(xiàn)在讓我們進入正題。內(nèi)網(wǎng)穿透的第一個要求,就是你需要有一個轉(zhuǎn)發(fā)用的服務(wù)器。目前騰訊云阿里云這些國內(nèi)一線云服務(wù)廠商都在促銷,延遲比小云服務(wù)廠商好很多,也都有100以內(nèi)包年的機型。比如阿里云的99元是2核心CPU+2G內(nèi)存+40GB SSD+3M內(nèi)存。但是目前看下來,性價比不是很高。性價比最高的是騰訊云的,同配置只要88元一年,每月200G流量。 當(dāng)然,88一年的僅限新用戶購買,而且3M帶寬說實話有點小了。這里個人推薦購買118一年的版本,帶寬升級為4M,流量多了100G,也是我在用的服務(wù)器。而且這個版本不限制新老用戶,沒買過都能買。一年118元,三年價格是540元,有長期需求的可以直接三年走起,不然一年期續(xù)費價格是很貴的。 買完云服務(wù),然后就是買域名了。當(dāng)然,在ICP備案沒有完成之前,你想通過域名訪問是不現(xiàn)實的。如果你是阿里云服務(wù)器,那直接在阿里云買域名是最好的,騰訊云同理。在騰訊云首頁搜索框輸入域名,選擇域名注冊即可注冊,實名認證那些記得都做了。 輸入你想要的域名點搜索,選一個便宜的注冊了就行。目前.online和.site的注冊和續(xù)費都很便宜,推薦用這個就行。 備案我就不教了,騰訊云和阿里云官方教程很詳細。買云服務(wù)器的時候,記得選好云服務(wù)器的位置,南方人選南京或者廣州,北方人選北京即可。系統(tǒng)選擇centos7.6,有掛docker需求的可以選擇帶docker的版本。但是你都有NAS了,還用在云服務(wù)器上掛docker嗎?買完服務(wù)器右上角點擊控制臺,點擊左上角云產(chǎn)品,選擇輕量服務(wù)器,進入網(wǎng)頁端大后臺。點擊自己購買的那臺服務(wù)器,重置密碼。 這個密碼是你的SSH密碼,而且不能太簡單,大小寫數(shù)字+符號都要有,選擇離線重置最好。因為你買的時候是隨機生成密碼,還是改個好記的吧。 接下來就是SSH進服務(wù)器后臺了。SSH工具推薦MobaXterm,官網(wǎng)地址:https://mobaxterm./,點download,下載free版本即可。MobaXterm的優(yōu)點是體積小,帶文件服務(wù)和文本編輯器,能省事不少。 下載后打開MobaXterm,點擊Session,然后選擇SSH,host處輸入你剛才的服務(wù)器公網(wǎng)IP,云服務(wù)器后臺能看到。點擊OK。 雙擊你剛剛建立好的連接,第一次會讓你接受密鑰,點Accept即可。用戶名root,密碼輸入你剛剛設(shè)置的root密碼。輸入密碼的時候不會有顯示是正?,F(xiàn)象,繼續(xù)輸入,輸入完成回車即可。 進入后先安裝systemd,后面會用到。Centos的命令是yum install systemd。然后回車,中間會讓你確認一次,輸入y回車即可。 安裝完systemd,就需要去架設(shè)frps服務(wù)了。s就是server的意思,服務(wù)端用。客戶端用的是frpc,即client。項目地址https://github.com/fatedier/frp/releases,下載最新版。centos下載amd64版本即可。 下載到本地,上傳至etc文件夾下。默認連上之后打開的是root文件夾,需要點頂部的兩個點回到上一層再雙擊etc。上傳方法很簡單,把你下載的文件拖到文件框里面就行。 輸入命令cd ..回到底層,看到centos后面的“~”變成“/”就說明回到底層了,再輸入cd etc進入etc文件夾。 輸入tar -zxvf 文件名,解壓你剛才上傳的frp客戶端文件。比如我下載的是frp_0.53.0_linux_amd64.tar.gz,那就輸入tar -zxvf frp_0.53.0_linux_amd64.tar.gz,回車解壓。 解壓完成后刷新左側(cè)的文件管理器,找到frp_0.53.0_linux_amd64文件夾,F(xiàn)2重命名為frp文件夾。 命令行側(cè)輸入cd frp,輸入ls -a可以看到里面的文件。 輸入vi frps.toml,打開配置文件,按ins之后可以輸入。或者雙擊frp文件夾進入,右鍵frps.toml,選擇open with default text editor使用自帶的文本編輯器打開這個文件。 網(wǎng)上你能找到的大部分教程都是用frps.ini,但是后續(xù)frp不會再支持ini文件,所以建議用toml文件。寫法是不一樣的,具體寫法如下 bindPort = 7000 #{必選} 客戶端與該端口建立連接 log.to = 'console' #{可選} 日志配置, 通過打印的方式輸出日志 vhostHTTPPort = 7100 #{可選} http代理需要,當(dāng)訪問該端口時跳到對應(yīng)本地frpc代理 vhostHTTPSPort = 7200 #{可選} https代理需要,當(dāng)訪問該端口時跳到對應(yīng)本地frpc代理 transport.tcpMux = true #tcp流多路復(fù)用(優(yōu)化傳輸,需一致) #身份驗證 auth.method = 'token' #{可選}身份驗證方式 auth.token = 'password' #token設(shè)置密碼,用于通過身份驗證創(chuàng)建連接 #frp服務(wù)儀表板配置(可以不用) webServer.port = 7300 #{也可自行修改端口} webServer.addr = '0.0.0.0' #公網(wǎng)ip或者域名 webServer.user = 'admin' #登錄用戶名{可自行修改} webServer.password = 'admin' #登錄密碼{可自行修改} 按以上寫法,我選出我需要的選項之后,就是如下所示。里面包含了客戶端所需要的端口,http和https代理端口,tcp多路復(fù)用,以及驗證方式和驗證密碼。輸入完成后保存即可,文本編輯器點擊保存按鈕即可,而vi命令行則是按ESC退出編輯狀態(tài),再輸入:wq回車保存。 到這里frps客戶端就配置好了,接下來就是如何啟動的問題。有兩種啟動方式,第一種是在當(dāng)前文件夾下輸入./frp -c ./frps.toml,這樣啟動。但是我們是要長期運行的,這樣不方便維護,這就需要前面安裝的systemd。不用退回底層文件夾,直接在命令行中輸入sudo vim /etc/systemd/system/frps.service,新建一個frps服務(wù)的文件。 如果是按照我的教程來的,文件夾路徑也一樣,那就按INS進入編輯狀態(tài),直接粘貼 [Unit] # 服務(wù)名稱,可自定義 Description = frp server After = network.target syslog.target Wants = network.target [Service] Type = simple # 啟動frps的命令,需修改為您的frps的安裝路徑 ExecStart = /etc/frp/frps -c /etc/frp/frps.toml [Install] WantedBy = multi-user.target 最終結(jié)果如下,按ESC退出編輯狀態(tài),輸入:wq保存即可。 這樣我們就能使用systemd來控制服務(wù)端了。命令如下 # 啟動frp sudo systemctl start frps # 停止frp sudo systemctl stop frps # 重啟frp sudo systemctl restart frps # 查看frp狀態(tài) sudo systemctl status frps #設(shè)置開機啟動frp sudo systemctl enable frps 比如在啟動狀態(tài)下我想查看frps服務(wù)狀態(tài),就輸入sudo systemctl status frps,啟動后看到active(running)就說明啟動成功了。后面的enable是開啟開機啟動后會顯示。 這樣frps服務(wù)器就架設(shè)好了,然后就是去騰訊云的防火墻把你剛剛設(shè)置的幾個端口都放開?;氐絼倓傇O(shè)置root密碼的網(wǎng)頁,選擇防火墻。 添加規(guī)則,協(xié)議類型選擇TCP,端口輸入你剛剛在配置文件中設(shè)置的端口。一個端口添加一次。比如你放開了14514端口,那就像下圖這樣輸入,來源不用填,備注自己定。一定都要添加上,避免訪問失敗的問題。阿里云的話,是在安全選項卡里面編輯。 配置完服務(wù)端,接下來就是客戶端的配置了。因為不走公網(wǎng)IP,所以無需在路由器上配置,直接在對應(yīng)設(shè)備上配置即可。比如你要轉(zhuǎn)發(fā)NAS,那就直接去NAS上配置客戶端。這里以qnap的NAS為例,告訴你怎么配置。至于群暉,不好意思,我手上已經(jīng)沒群暉了,自己上網(wǎng)搜吧。或者根據(jù)我下面的教程看看qnap的docker怎么配置。 首先進入qnap的網(wǎng)頁后臺,找到Container Station,即docker管理器。沒有的話去app center里面安裝,這個不用我教吧。打到容器選項卡,點擊創(chuàng)建。 基本模式就行,映像處輸入stilleshan/frpc:latest,點擊下一步 名稱不用管,默認的即可,點擊下面的高級設(shè)置。 由于我們用的是toml文件,所以不能用他默認的命令,第一項命令選項卡,點擊覆蓋,輸入/bin/sh -c '/frp/frpc -c /frp/frpc.toml',取代原有的命令。 網(wǎng)絡(luò)選項卡,不要用默認的NAT,選擇自定義,改為host模式。 然后打到存儲選項卡,映射/frp在你NAS中的位置。所有qnap的共享文件夾都在/share下,所以前面要加上/share,比如frp文件夾我放在了Container文件夾下,那卷就填寫/share/Container/frp,然后點擊應(yīng)用即可。 這時候不要著急完成容器的創(chuàng)建。先去把frpc客戶端裝好。去你上文中填寫的frp文件夾,比如我的是/Container/frp,那我就去Container文件夾下建一個frp文件夾,打開一開始下載的frp_0.53.0_linux_amd64.tar.gz,不要解壓文件夾,點進frp_0.53.0_linux_amd64文件夾后把里面的文件解壓到/Container/frp文件夾下,這一步windows下操作就行。 用win11的記事本打開frpc.toml,編輯frpc文件,編寫規(guī)則如下。 serverAddr = 'XXX.XXX.XXX.XXX' #frps服務(wù)器地址 serverPort = XXXX #frps服務(wù)器端口 auth.token = 'XXXXXXXX' #frps驗證碼 transport.tcpMux = true #tcp流多路復(fù)用(優(yōu)化傳輸,需一致) [[proxies]] name = 'qnap login' #項目名稱,可以自定義 type = 'tcp' #傳輸協(xié)議,填寫tcp localIP = '192.168.XX.XXX' #qnap NAS在你家庭內(nèi)網(wǎng)中的IP地址 localPort = XXXX #需要轉(zhuǎn)發(fā)的端口 remotePort = XXXX #frps服務(wù)器轉(zhuǎn)發(fā)的出的端口 這里要注意的是,轉(zhuǎn)發(fā)的端口可以是多個,重復(fù)寫[[proxies]]規(guī)則即可,一個端口一個規(guī)則,回車空一行分隔開即可,每個規(guī)則開頭都要有[[proxies]]。比如我的寫完之后就是這樣的。serverAddr可以是frps服務(wù)器的IP地址,做了域名映射的話可以填寫域名。填寫完成后保存frpc.toml文件即可。 然后我們就能完成容器的創(chuàng)建了。創(chuàng)建后容器自動會運行。這里要注意把你[[proxies]]中轉(zhuǎn)發(fā)的端口添加到騰訊云服務(wù)器的防火墻規(guī)則里面。比如你把qnap的https登錄的5001端口轉(zhuǎn)為了1234,寫法就是 localPort = 5001 remotePort = 1234 去騰訊云的防火墻里面把1234端口添加進規(guī)則即可。容器啟動后可以在容器下面的日志查看當(dāng)前連接的狀態(tài)。 這時候你就可以用服務(wù)器的公網(wǎng)IP+你轉(zhuǎn)發(fā)的端口來訪問路由器的后臺了。假設(shè)你的公網(wǎng)IP是123.123.123.123,轉(zhuǎn)發(fā)的qnap網(wǎng)頁后臺https登錄端口是1234,那就輸入https://123.123.123.123:1234來訪問qnap的網(wǎng)頁后臺。這時候你可以在任意地方訪問,不局限在你家的局域網(wǎng)里面。當(dāng)然,如果你做了域名映射,可以把123.123.123.123換成你的域名。想使用域名訪問除了要做映射以外,記得也要做好ICP備案才能正常訪問。 不過要注意,威聯(lián)通的手機app比較 域名映射的辦法很簡單,以騰訊云為例,在騰訊云控制臺輸入域名,找到云解析DNS,進入域名解析頁面。 找到你買的域名,點擊解析。 主機記錄這里填寫規(guī)則為,假設(shè)你的域名是yuanshen.online,你想直接訪問yuanshen.online,那就填@,想訪問www.yuanshen.online,那就填www,abc.yuanshen.online,那就填abc,以此類推。記錄值就是你購買的服務(wù)器IP,騰訊云可以直接選你當(dāng)前購買的產(chǎn)品,很方便。權(quán)重不用填,點擊確認即可。 最后是SSL證書問題。因為我們是為了安全才用https訪問,所以SSL證書是必須的。群暉和威聯(lián)通都可以強制http訪問跳轉(zhuǎn)到https,以威聯(lián)通為例。點擊控制臺,常規(guī)設(shè)置,把強制使用安全連接打上勾,應(yīng)用即可,群暉的方法也類似,兩家默認端口號都是5001。 設(shè)置完之后,去騰訊云或者阿里云申請你的域名相關(guān)的證書。這一步只有用域名訪問的才需要,因為你用IP訪問的話,證書是對不上的,可以備案通過之后再申請也來得及,一般幾分鐘就能發(fā)放。控制臺搜索SSL,找到SSL證書-我的證書。 選擇申請免費證書,彈出的提示框再選一次。每個賬號能申請最多50個免費證書,每張證書的有效期為1年。 輸入你想綁定證書的域名,比如前面我們申請的yuanshen.online,那就直接輸入yuanshen.online,DNS驗證選自動,勾上自動刪除驗證即可。郵箱填自己的就行,然后提交申請即可。 一般20分鐘左右就能發(fā)放證書。發(fā)放后點擊下載 ,群暉和威聯(lián)通都是用Nginx的格式,下這個就行。 解壓后有四個文件,威聯(lián)通需要的是.crt和.key,我們用這倆就行。 威聯(lián)通網(wǎng)頁后臺點擊控制臺,安全選項卡,打到SSL證書和秘鑰,點擊取代當(dāng)前證書。 選擇導(dǎo)入證書,出現(xiàn)的界面中,第一個上傳.crt,第二個上傳.key,第三個不用管,點擊應(yīng)用即可。應(yīng)用后會自動重啟網(wǎng)頁后臺應(yīng)用證書。 好了,教程到這里大致就結(jié)束了,很久沒寫這么詳細的教程了,寫的頭皮發(fā)麻,希望能幫到對此有需求的各位。群暉和unraid我都沒有,所以這里就不寫了,不過大致也都差不多。而且玩unraid的人應(yīng)該比我更精通這些東西,上手門檻在那。 這么干的好處顯而易見,在外面也能訪問自己家里的文件,就算是黑群暉也能享受這本該是白群才有的服務(wù)。代價就是一臺年費不低的云服務(wù)器,不過我覺得值得,畢竟方便是多少錢都買不來的 好了我們下期再見 |
|
來自: 真友書屋 > 《軟硬皆師 實用技巧》