OpenWrt路由器打造小型NAS服務(wù)(二):把家庭網(wǎng)絡(luò)搬上云端(上)
家庭網(wǎng)絡(luò)搬上云端意味著什么?
通常我們?cè)诩依锝M建的局域網(wǎng),離家之后就不能訪問(wèn)了。家庭網(wǎng)絡(luò)上云,就意味著我們可以像訪問(wèn)百度一樣,從 Internet 訪問(wèn)自己的家庭網(wǎng)絡(luò)。
這時(shí)我們可以做到:
隨時(shí)隨地調(diào)校路由器,家里長(zhǎng)輩再也不怕斷網(wǎng);
建立私人云盤(pán),在外也能同步備份文件;
遠(yuǎn)程喚醒家中的電腦,通過(guò)遠(yuǎn)程桌面進(jìn)行控制;
發(fā)布個(gè)人網(wǎng)站,將你的文字、圖片、音樂(lè)、視頻分享給世界;
遠(yuǎn)程下載,回家即用;
控制你的智能家居,比如掃地機(jī)器人、熱水器等;
還有更多妙用,只要你有需求,就一定會(huì)有解決方案。
家庭網(wǎng)絡(luò)上云如何實(shí)現(xiàn)
實(shí)現(xiàn)的基礎(chǔ),是將路由器配置成可以從 Internet 進(jìn)行訪問(wèn),作為中繼的橋梁,從而連通整個(gè)內(nèi)網(wǎng)。
用路由器作為橋梁的優(yōu)勢(shì)之一,就是它功耗小,可以 24 小時(shí)開(kāi)機(jī)。
通過(guò)路由器喚醒內(nèi)網(wǎng)中的其它設(shè)備,使用完后關(guān)閉,在達(dá)到較低功耗的前提下,也能彌補(bǔ)路由器算力不足的問(wèn)題。
如果你是有公網(wǎng) IP 的“高端人士”,請(qǐng)收下我的嫉妒,接下來(lái)的事就不用折騰了,只需要使用動(dòng)態(tài)域名解析(DDNS)服務(wù)即可,本文不過(guò)多闡述。
我曾經(jīng)向電信申請(qǐng)過(guò)公網(wǎng) IP,但沒(méi)有成功,就只能使用內(nèi)網(wǎng)穿透“曲線救國(guó)”。內(nèi)網(wǎng)穿透的技術(shù)和服務(wù)商有很多,但鑒于要在 OpenWrt 路由器中部署,還是只有 Frp 最為適合。
Frp的優(yōu)點(diǎn):
多平臺(tái)支持,Windows 和 Linux 都可以使用;
功能全面且強(qiáng)大,支持多種傳輸協(xié)議;
免費(fèi)且開(kāi)源,用戶有完整的控制權(quán);
Frp的缺點(diǎn):
Frp 是命令行工具,通過(guò) ini 文件進(jìn)行配置,使用門(mén)檻較高,對(duì)新手小白不友好;
要最大限度發(fā)揮性能,需要花錢(qián)租用一臺(tái)VPS主機(jī);
選擇適合你的使用方式和準(zhǔn)備工作
Github 中已經(jīng)有一鍵安裝配置腳本和圖形界面,我沒(méi)有使用,有興趣的可以自行折騰。
懶得折騰的可以使用別人已經(jīng)搭建好的服務(wù)器,有免費(fèi)服務(wù)可供使用。如果要求高一些,可以選擇付費(fèi)服務(wù),價(jià)格比租用 VPS 要便宜許多,并且服務(wù)商還會(huì)提供圖形化的客戶端給你。
和我一樣喜歡折騰的,你需要準(zhǔn)備以下這些:
一臺(tái)有公網(wǎng) IP 的 VPS,不想花錢(qián)的話,可以去了解下如何白嫖一臺(tái)高性能的 VPS;
VPS 安裝好 Debian10 系統(tǒng),這個(gè)沒(méi)有硬性要求,主要是和我用成一樣的,在命令使用上不會(huì)造成分歧。
最好能有一個(gè)屬于你自己的國(guó)際域名,比如 .com 和 .net 后綴的。
Openwrt 固件的路由器一臺(tái),其它平臺(tái)的不在本文范圍內(nèi)。
用 SSH 登錄到你的 VPS 終端。
下面開(kāi)始部署服務(wù)器。
下載frp
打開(kāi) Frp 的最新版發(fā)布頁(yè)面:https://github.com/fatedier/frp/releases/latest
在下載列表中找到與你的 VPS 主機(jī)的系統(tǒng)和 CPU 相對(duì)應(yīng)的包,右鍵復(fù)制鏈接。
不知道 VPS 的系統(tǒng)和型號(hào),可以用這個(gè)命令查詢:
uname -a
然后用 cd 命令進(jìn)入自己的家目錄,進(jìn)行下載操作。
cd
wget "粘貼剛才復(fù)制好的下載鏈接"
//比如 wget https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz
下載完成后,將軟件包解壓,然后壓縮包就可以刪除了。
tar -zxvf frp*tar.gz //解壓
rm frp*tar.gz //刪除
部署 frps 服務(wù)端文件
將解壓出來(lái)的目錄復(fù)制到你想安裝 Frp 的位置,比如 /usr/local/frp。
sudo cp -r frp* /usr/local/frp
這里需要用到 sudo 命令,可能會(huì)要求你輸入密碼,就輸入當(dāng)前登錄的用戶密碼即可,不建議直接使用 root 用戶進(jìn)行操作。
執(zhí)行下面2條命令:
ls /usr/local/frp
sudo rm /usr/local/frp/frpc*
查看復(fù)制過(guò)去的目錄內(nèi)容,并刪除 frpc 開(kāi)頭的文件,frpc 開(kāi)頭的是客戶端,服務(wù)器上用不到。frps開(kāi)頭的是服務(wù)端,systemd目錄中的是系統(tǒng)服務(wù)配置文件,接下來(lái)都要用到。
修改配置文件
現(xiàn)在還剩兩個(gè) ini 文件,frps.ini 是默認(rèn)生效的配置,也是簡(jiǎn)易配置,frps_full.ini 是選項(xiàng)更全的高級(jí)配置文件。
我們還是使用選項(xiàng)更全的 full 文件進(jìn)行配置。
sudo vi /usr/local/frp/frps_full.ini
需要設(shè)置的主要是以下幾項(xiàng),其余若是不明白的,暫時(shí)保持默認(rèn)好了。
bind_addr = 0.0.0.0 // 允許來(lái)自任何地方的客戶機(jī)連接frp服務(wù)
dashboard_user = // 設(shè)置后臺(tái)儀表盤(pán)的登陸用戶
dashboard_pwd = // 設(shè)置登陸密碼
authentication_method = token // 客戶端采用密鑰的驗(yàn)證方式登陸服務(wù)端
token = // 自定義一個(gè)密碼,客戶端設(shè)置中需要用到
配置文件中 xxxxxx_port 這樣的選項(xiàng),是用來(lái)配置端口的,一般默認(rèn)即可。如果默認(rèn)端口被占用的話,要改成其它端口才能啟動(dòng)服務(wù)??梢杂眠@個(gè)命令查詢端口占用情況:
netstat -atunp | grep '端口號(hào)'
最后將文件末尾的 [plugin.user-manager] 和 [plugin.port-manager] 兩個(gè)插件配置全部刪除,我們不安裝插件。
最后保存配置文件。
創(chuàng)建 frps 服務(wù)
打開(kāi) frps 服務(wù)文件。
sudo vi /usr/local/frp/systemd/frps.service
修改以下幾項(xiàng):
[service]
User=root
Execstart=/usr/local/frp/frps -c /usr/local/frp/frps_full.ini
修改完后保存,再將 frps.service 文件復(fù)制到服務(wù)目錄,并加入系統(tǒng)服務(wù),依次執(zhí)行下方4條命令:
sudo cp /usr/local/frp/systemd/fprs.service /etc/systemd/system
sudo systemctl daemon-reload
sudo systemctl enable frps
sudo systemctl start frps
完成后,frps 就啟動(dòng)了,并且日后重啟 VPS 了,frps 也能自啟動(dòng)。
還可以用以下命令來(lái)重啟 frps,以及查看 frps 的運(yùn)行狀態(tài)。
sudo systemctl restart frps //重啟
sudo systemctl status frps //查看運(yùn)行狀態(tài)
測(cè)試 frps 是否正常運(yùn)行
將你的域名解析到 VPS 的公網(wǎng) IP,通過(guò)訪問(wèn) 域名:7500 來(lái)打開(kāi)后臺(tái)儀表盤(pán)。沒(méi)有域名的話,就用IP:7500 進(jìn)行訪問(wèn)。
好了,如果看到類似上圖的頁(yè)面,恭喜你,服務(wù)端已經(jīng)部署成功了。