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