2021年3月21日 星期日

設定虛擬伺服器讓外網存取內部網站的方法

我放在鄉下的 Pi 3 自 2019 年 4 月初升版為 Stretch (v9) 至今將近兩年, 去年更為了提升網速將 ADSL 改成光世代, 主要目的是要將 Pi 3 當作智慧家居的伺服器用, 希望讓佈放在門口與菜園等處的物聯網監控模組, 以及頂樓的太陽能, 氣候監測站等透過 Pi 3 儲存彙整資訊, 但是想得快做得慢, 進度仍停留在計畫中, 無奈時間總是不夠用, 只能一點一點做, 就是蝸牛也能爬上杆. 

利用 Python 程式與無線路由器設定 port forwarding 與 virtual server 我可以每小時收到 Pi 3 送出來的 IP 位址, 這樣就能利用 PuTTY (文字介面) 與 VNC Viewer/Connect (桌面) 登入鄉下的 Pi 3 進行遠端操控, 但一直尚未嚐試網頁存取, 雖然可以在 VNC 連線後直接用 localhost 瀏覽本機網頁, 但若能直接用 ip 從筆電瀏覽網頁會比較好, 因為 VNC 的螢幕較小. 

作法是連線無線基地台網址, 我鄉下的 EDIMAX 信舟路由器管理網址是 192.168.2.2, 登入網頁後切換到 "位址轉換" 頁籤, 底下又分為好幾個子頁籤, 第一頁 "port forwarding" 之前在設定 VNC 遠端桌面時就已開啟 port 0~5190 存取導引到樹莓派的固定 IP=192.168.2.9, 這一頁不用改 (如果需要 8080 埠存取可開至 8080) :



 
切到第二個子頁籤 "virtual server", 裡面已經開啟 port 22 (SSH) 給 PuTTY 使用, 在上方輸入 Private IP=192.168.2.192 (樹莓派固定 IP), Private port 與 Public port 輸入 80 (HTTP 網頁) 後按 "Add" 鈕新增虛擬伺服器 :




這樣底下就會列出已開啟的虛擬伺服器 :




然後線上重啟基地台後設定即生效, 這時查詢目前光世代外網 IP (可在樹莓派瀏覽器上連線 http://myip.com.tw 查知), 我目前是 http://1.173.150.133/, 在筆電上用瀏覽器從外網拜訪此 IP, 結果可正常存取樹莓派上 Nginx 所提供的網頁 :




將將, 成功了! 終於搞定很久就想測試的項目. 不過此 IP 隨時都會變動 (浮動 IP, 我 Hinet 固定 IP 保留給監視器用), 所以遠端存取時我得先看一下 email, 查看最近一小時內 Pi 3 所回報的光世代外網 IP, 參考 : 


沒有留言 :