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