簡單內網穿透-利用樹莓派-低成本建站 無需公網ip

網雲穿內網穿透發表於2021-02-25

很多人都想試試自己 建站 玩一玩 (比如部落格、自建網盤、遠端下載等),但家裡寬頻 沒公網 IP ,特意買臺伺服器又顯得浪費。那麼有沒成本小、可玩性高、又能長期穩定使用的方案呢?

其實,免費的內網穿透工具 (如網雲穿) + 樹莓派,即可利用家裡寬頻來搭建執行各種好玩的網站程式,跑一些自用網路服務再適合不過了。樹莓派價格便宜、功耗小、功能強大;而網雲穿則能免費幫你實現內網穿透,讓沒有公網 IP 的樹莓派也能在外網上直接訪問……


由於電信聯通等大多數普通寬頻都不提供公網 IP 地址,別人無法透過網際網路直接訪問到你家中內網的電腦、樹莓派、NAS 或其他網路裝置。因此想在家裡或公司“低成本”建站,我們需要藉助「網雲穿」這樣的 免費內網穿透工具 ,來快速地讓內網裝置能被外網公網訪問。

簡單內網穿透-利用樹莓派-低成本建站 無需公網ip

網雲穿可以申請到免費的“內網穿透隧道”,透過它就能讓所有人直接從外網訪問到你樹莓派中建立的網站,也能實現遠端 SSH 進行維護管理。這樣,我們只需一個樹莓派 或一臺閒置 PC 電腦 / NAS (教程可參考這裡),就能擁有一個完全屬於自己的“高價效比的網站伺服器”了。

建站前準備

樹莓派 (Raspberry Pi) 是價格低廉的微型電腦,體積小巧,擁有不俗的效能,執行 Linux 系統,資源豐富且穩定,加上功耗極小,適合長期執行,特別適合用來做我們的“建站伺服器”。

以樹莓派 4 的配置,跑幾個部落格、PHP 程式或靜態網站絕對是綽綽有餘的。畢竟騰訊雲、阿里雲那些便宜的 VPS 也就1核1G,效能上並沒強多少,但每年的價格並不算便宜。當然,如果你有閒置的 PC 或筆記本,安裝個 Debian、CentOS、Ubuntu 等系統也完全可以。

而內網穿透工具的選擇,之前曾介紹過「網雲穿」,它速度比較穩定,既有免費的隧道可以零成本使用,也有付費方案適合有一定要求的高階使用者;部署的方法也簡單,是款不錯的工具。再加上網雲穿可以繫結域名,不需要備案,別人訪問時,和真正的雲伺服器基本沒有區別。

樹莓派內網穿透+建站教程:

樹莓派官方的「Raspberry Pi OS」系統是基於 Debian 修改而來的發行版,用法上和一臺 Ubuntu、Debian 等 Linux 系統的機器沒有什麼區別,大家可參考 Linux 就該這麼學、鳥哥的 Linux 私房菜等教程進行學習。

網上的“ 樹莓派建站教程 ”有很多,隨便一搜就能找到不少。不過,根據 WEB 程式的不同,所需要安裝的元件也有區別 (比如有些是 PHP,有些 Python 或 Node.js 程式),大家要參考程式具體的部署說明。這裡主要介紹最常見的  LNMP  環境安裝 (Linux + Nginx + MySQL + PHP) 作為建站示範,可執行最常見的 WordPress,並且還會詳細介紹怎樣進行“內網穿透”的設定步驟。

安裝 NGINX 和 PHP 7.3:

我們先透過 SSH 連線到區域網的樹莓派,然後下面我們就開始以最常用的「 安裝 Nginx + PHP 」作為網站 WEB 伺服器軟體作為例子吧。

#更新系統軟體包sudo apt-get update#安裝 NGINX 和 PHP 7.3sudo apt-get install nginx
sudo apt-get install php7.3-fpm php7.3-cli php7.3-curl php7.3-gd php7.3-cgi#啟動 NGINX 和 PHP 服務sudo service nginx startsudo service php7.3-fpm restart

如果安裝成功,在瀏覽器中透過  http://樹莓派區域網IP  即可訪問到 Nginx 的測試頁面了,如下圖。如顯示正常,則表示 WEB 伺服器已經正常提供服務了。預設情況下,Nginx 的網站根目錄位於  /var/www/html

簡單內網穿透-利用樹莓派-低成本建站 無需公網ip

讓 Nginx 支援執行 PHP

#修改網站配置檔案,新手可能需要學習一下 VIM 命令的使用方法sudo vim /etc/nginx/sites-available/default

原來的配置檔案內容:

location / {	# First attempt to serve request as file, then
	# as directory, then fall back to displaying a 404.
	try_files $uri $uri/ =404;
}

替換為:

location / {	index  index.html index.htm index.php;
} 
location ~\.php$ {	fastcgi_pass unix:/run/php/php7.3-fpm.sock;	#fastcgi_pass 127.0.0.1:9000;
	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;	include fastcgi_params;
}

重啟 NGINX 服務讓 PHP 生效:

#重啟 NGINX 服務sudo service nginx restart

安裝 MYSQL (MariaDB) 資料庫

MariaDB 是 MYSQL 被甲骨文收購後的開源復刻版,完全免費,且使用上基本一致,基本可以相容全部的 MYSQL 程式。

# 安裝軟體包sudo apt-get install mariadb-server-10.0

修改 MYSQL 資料庫的密碼:

# 執行 mysql 程式mysql

順序輸入下面的 mysql 命令來修改資料庫 root 使用者的密碼:

use mysql;update user set plugin='mysql_native_password' where user='root';UPDATE user SET password=PASSWORD('你想要設定的密碼') WHERE user='root';flush privileges;
exit;
# 重啟 MYSQL 服務service mysql restart

至此,LNMP 環境 (Nginx + MariaDB + PHP) 已經安裝完成了!有了 LNMP 環境,你就可以上傳比如 WordPress 或各種各樣的 PHP 網站程式到樹莓派中完成建站了。

配置樹莓派的內網穿透教程

假如你已架設好了網站,那麼接下來就是“ 配置內網穿透教程 ”讓你的樹莓派能被外網訪問。

1、領取免費的內網穿透隧道,並配置隧道

前往 「網雲穿官網」 註冊賬號 → 領取免費隧道,然後跳轉控制檯點選隧道管理、配置隧道資訊;穿透協議設定為  Http(s) 。內網埠就是你安裝的 nginx 的埠號,預設是  80 ,此埠號在配置檔案上進行修改。

簡單內網穿透-利用樹莓派-低成本建站 無需公網ip

2、獲取隧道的“令牌”

確定之後,控制檯會生成一個「令牌」,相當於內網穿透時的通訊密碼,後面需要用到,你可以複製下來暫時儲存。

3、安裝網雲穿客戶端

異次元之前曾介紹過網雲穿可以安裝在 Windows、Linux、Mac 甚至是群暉 NAS 上,同樣,在樹莓派上也能直接安裝。樹莓派使用的是 ARM 架構處理器,所以下載 Linux ARM 版本即可。如果你用的是 PC 電腦,那麼就該更換成對應架構的 x64 版客戶端。

在樹莓派上執行:

# 使用 wget 命令下載網雲穿客戶端wget -O /home/pi/ 設定可執行許可權sudo chmod a+rwx /home/pi/wyc_linux_arm# 啟動網雲穿客戶端# 其中 XXXX 是你剛才獲取到的“令牌”/home/pi/wyc_linux_arm -token XXXX

如果令牌沒有錯的話,網雲穿客戶端就會進行登入和連線,成功後輸出以下的資訊:

簡單內網穿透-利用樹莓派-低成本建站 無需公網ip

這時你就能獲取到公網訪問的網址了,你在瀏覽器訪問這個網址,即可直接開啟樹莓派裡的 Nginx 配置的預設網站。

4、樹莓派設定網雲穿客戶端開機啟動

如果你需要樹莓派重啟之後能再次自動啟動“網雲穿”的內網穿透功能,那麼還得配置程式自啟動。我們首先向 rc.local 檔案新增啟動程式碼:

# 編輯 rc.local 檔案
sudo vim /etc/rc.local

在 rc.local 檔案中找到“exit 0”這一句, 在它前面新增 以下的命令程式碼:

nohup /home/pi/wyc_linux_arm -token=你的令牌 &
# 這一句必須在 exit 0 的前面,注意別漏掉“令牌”後面的空格和 & 符號

這樣配置之後,每當在樹莓派重啟之後,你的內網穿透功能都會自動啟動的。而且在樹莓派上部署的網站都能被外網直接訪問得到了。

配置內網穿透,實現 SSH 遠端連線樹莓派

除了網站可以訪問之外,如果日後你還需要在外網透過 SSH 來遠端管理樹莓派 (比如升級更新、安裝程式、執行 Linux 命令、維護網站等等),那麼還可以為 SSH 增加一個內網穿透隧道。

同樣,還是先開通一個隧道,操作方法和之前一樣,不過這次配置穿透協議要改成  tcp ,內網埠為樹莓派的  sshd  的埠,預設是  22 ,埠號可透過配置檔案修改,保持一致就行。

簡單內網穿透-利用樹莓派-低成本建站 無需公網ip

確定之後,會生成如圖的資訊,記錄下外網埠、域名和令牌:

簡單內網穿透-利用樹莓派-低成本建站 無需公網ip

如同之前一樣,在樹莓派上使用這句命令來啟動網雲穿客戶端。使用剛剛記錄的口令,這次會生成一個帶有埠的外網地址。

/home/pi/wyc_linux_arm -token 你的SSH隧道令牌

從上面命令的輸出資訊可以看到網雲穿客戶端是否成功連線。沒有問題的話,那麼就修改 rc.local 檔案,如下,就能實現開機啟動兩個隧道了。

# 啟動多個網雲穿客戶端例項,一行一個令牌# 網站穿透:nohup /home/pi/wyc_linux_arm -token=你的網站隧道令牌 &# ssh 穿透:nohup /home/pi/wyc_linux_arm -token=你的SSH隧道令牌 &# 注意必須在 exit 0 的前面

之後,在網際網路的其他電腦上,使用 Putty 或任何終端應用,透過下面的命令即可連線到你內網的樹莓派了:

ssh -p 外網埠 pi@域名

這樣,透過網雲穿開通的兩條隧道,既實現了外網訪問網站,也實現了樹莓派的 SSH 遠端管理。換而言之,現在你在任何地方上網,都能輕鬆直接訪問到家裡的樹莓派了。

總結:

無論你是打算隨便建個網站玩一玩,還是用於學習 Linux,或者是搭建真正有用的私人網路服務,藉助樹莓派/閒置電腦 + 網雲穿內網穿透工具的免費隧道都能“低成本”完成!

利用內網穿透和家庭普通寬頻搭建自己的伺服器,可玩性和靈活性都極高,長期執行其實也很穩定,能解決很多場景的問題。至少建個 WordPress 部落格或私人網盤對大多數人都是很有用的,感興趣的同學不妨試試看。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69957737/viewspace-2759367/,如需轉載,請註明出處,否則將追究法律責任。

相關文章