概述
如題,我們今天主要講利用網(wǎng)云穿官方提供的內(nèi)網(wǎng)穿透功能來外網(wǎng)訪問樹莓派上的網(wǎng)站,以及通過 ssh 進(jìn)行遠(yuǎn)程管理。
樹莓派
樹莓派是基于博通出品的 arm 架構(gòu)處理器的微型電腦,價格低廉,目前最新版本為 4B,筆者使用的是 3B+,當(dāng)時是二百元左右。
3B + 版本的配置如下:
主頻 1.4GHz,64 位 4 核的 ARM Cortex-A53 CPU1GB LPDDR2 內(nèi)存2.4GHz 和 5GHz IEEE802.11.b/g/n/ac 無線網(wǎng)卡,藍(lán)牙 4.24 個 USB2.0HDMI
這配置跑一個靜態(tài)網(wǎng)站是綽綽有余了,畢竟阿里云便宜的也就 1 核 1G 而已(主頻會稍高一些)。
建站
Nginx
樹莓派官方提供了基于 Debian 的 Raspberry Pi OS,所以安裝軟件與大家熟悉的 Ubuntu 一樣,首先安裝 nginx 作為 web server:
sudo apt install nginx
安裝完啟動:
# 啟動nginx,沒有輸出就表示啟動成功了sudo nginx # 也可以主動查看進(jìn)程ps -ef | grep nginx
查看進(jìn)程輸出類似如下效果:
nginx
默認(rèn) nginx 是有配置文件直接生效的,可以通過瀏覽器訪問樹莓派的局域網(wǎng) ip,例如我的是 192.168.199.175,能看到這個頁面,就表示 web server 已經(jīng)正常提供服務(wù)。
瀏覽器
如果需要訪問自己的網(wǎng)站文件,改一下 nginx 的配置文件就可以了。
網(wǎng)云穿內(nèi)網(wǎng)穿透
網(wǎng)站已經(jīng)有了,接下來就是配置內(nèi)網(wǎng)穿透進(jìn)行外網(wǎng)訪問。
在網(wǎng)云穿官網(wǎng)購買隧道并將穿透協(xié)議設(shè)置為 Http (s)。內(nèi)網(wǎng)端口就是上面安裝的 nginx 的端口,默認(rèn)是 80,可以通過修改配置文件做調(diào)整,在這里配置好即可。
image-20200802160920441
確定之后控制臺會生成令牌,復(fù)制下來。
image-20200802161617631
接著安裝網(wǎng)云穿客戶端,上面說了樹莓派是 arm 架構(gòu)處理器,所以要下載 arm 版本的網(wǎng)云穿軟件,登錄控制臺很明顯的可以看到:
arm
復(fù)制好鏈接地址,執(zhí)行如下命令:
# 使用wgetwget http://xiaomy.net/download/linux/wyc_linux_arm && chmod a+rwx wyc_linux_arm # 使用curl,二選一即可curl -O http://xiaomy.net/download/linux/wyc_linux_arm && chmod a+rwx wyc_linux_arm
執(zhí)行完成后網(wǎng)云穿的客戶端就安裝好了,接下來啟動軟件,執(zhí)行如下命令:
./wyc_linux_arm -token 上面記錄的令牌
可以看到如下輸出:
外網(wǎng)地址也有了,直接在瀏覽器訪問外網(wǎng)域名:
就是這么簡單,樹莓派里面的網(wǎng)站就可以供外網(wǎng)訪問了。
運(yùn)維
網(wǎng)站運(yùn)行起來就完事了嗎?當(dāng)然不是,后續(xù)可能還需要面臨網(wǎng)站更新、軟件更新、服務(wù)重啟等事務(wù),這些事情只能通過遠(yuǎn)程管理來操作,也就是這部分要講的內(nèi)容:通過 ssh 進(jìn)行樹莓派的運(yùn)維管理。
其實(shí)在建站的過程中我們已經(jīng)在樹莓派上安裝了些軟件,這個過程就是 ssh 連接的操作,而現(xiàn)在要做的就是 ssh 訪問外網(wǎng)地址來連接樹莓派。
同樣還是先開通隧道,這次配置穿透協(xié)議為 tcp,內(nèi)網(wǎng)端口為 sshd 的端口,默認(rèn)是 22 號,當(dāng)然也可以通過配置文件進(jìn)行修改,保持一致就行。
確定之后,會生成如下信息,記錄下外網(wǎng)端口、域名和令牌:
并且再次啟動一個網(wǎng)云穿客戶端,使用剛剛記錄的口令,這次會生成一個帶有端口的外網(wǎng)地址。
./wyc_linux_arm -token 上面記錄的令牌
最后可以在其他機(jī)器上通過下面的命令連接樹莓派:
ssh -p 外網(wǎng)端口 pi@域名
這就實(shí)現(xiàn)了對樹莓派進(jìn)行遠(yuǎn)程管理。
總結(jié)
通過網(wǎng)云穿開通了兩條隧道,即實(shí)現(xiàn)了外網(wǎng)訪問的網(wǎng)站,也實(shí)現(xiàn)了遠(yuǎn)程管理。
你可能會問,這么做有必要嗎?還不如買一個云服務(wù)器呢!
我個人認(rèn)為建站最大的成本在于云服務(wù)器,個人網(wǎng)站使用的 1 核 1G 外加 1Mbps 帶寬通常夠了。以阿里云為例,價格每年 500 左右。而這個配置的服務(wù)器我之前啟動個 hadoop 都很費(fèi)勁。
而內(nèi)網(wǎng)穿透明顯便宜很多,我們可以根據(jù)網(wǎng)站的情況選用更高的帶寬。并且可以綁定自己的域名,服務(wù)器也不需要備案,外人看來和云服務(wù)器沒有區(qū)別。
當(dāng)然這么比較明顯是不公平的,因?yàn)檫x用內(nèi)網(wǎng)穿透的方案需要我們自己提供電腦、電費(fèi)和精力。綜合起來成本可能差不多,但是理論上電腦的性能就由我們自己控制,可玩性大得多,生命不就在于折騰嗎?
最后,非常感謝網(wǎng)云穿提供的免費(fèi)方案。