NPS 內網穿透教學

內網穿透也就是NAT穿透,能夠讓內網主機提供外網連線的功能,由於家中無固網,取而代之的是使用4G網路作為家網,因此勢必沒有辦法使用固定IP,然而卻有外網連線的需求。也因如此才去找尋內網穿透的相關技術,發現了NPS好用的地方,並將過程記錄下來,以作為日後參考。

內網穿透使用時機

  1. 無固定IP環境(4G聯網….) 、NAS對外連線…
  2. 需要https連線的開發環境,ex. line bot ….

市面上也有很多反向代理的服務,例如非常有名的 ngrok(缺點是免費版有些許限制),或是自行架設的 FRP,不過 NPS 相較於 FRP,有更便捷的使用操作,FRP 設定較為繁瑣,因此本文主軸會使用 NPS 來做示範。

接下來會教大家如何使用NPS來達成內網穿透,以下教學會分為兩大部分來說明,一個是伺服端的安裝設定,另一個部分是客戶端。

伺服端

首先要有一台擁有固定ip的伺服器,一般來說會使用VPS來做為伺服端,本範例會使用甲骨文的雲端主機來安裝,不過基本上流程都大致相同,不同主機應該不會有太大的差異。

順帶一提,有些雲端主機預設為浮動IP,要先經過設定後取得固定IP才行,另外也須先設定開放的port,一般來說 NPS 使用到的是8080、8024,因此可以將8000-8888都打開,不過也可以依自己的需求去做更動,在這邊就不多做贅述,可以自行去查個雲端主機服務平台的官方文件。

VPS 開放 port 設定

當VPS主機準備好了就可以開始安裝了,首先可以到https://github.com/ehang-io/nps/releases 查看所需的版本,由於我的 vps 主機是採用 arm架構的 linux 主機,因此選用 linux_arm64_server.tar.gz 這個server端版本,不然一般使用 linux_amd64_server.tar.gz 即可。

使用 wget 指令下載

wget  https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_arm64_server.tar.gz

接著將檔案解壓縮

tar -zxvf [linux_arm64_server.tar.gz](https://github.com/ehang-io/nps/releases/download/v0.26.10/linux_arm64_server.tar.gz)
可以用ls指令來看到目前根目錄檔案狀態

使用指令安裝

sudo ./nps install

啟動 nps 服務

sudo nps start

啟動後到任一瀏覽器,輸入伺服器 ip:8080 即可看到 web設定畫面,預設帳號為 admin 、 密碼為 123,文末會說明如何更改帳號密碼。

預設帳號為 admin 、 密碼為 123
成功登入後會看到控制台,了解目前的連現狀態

接著我們看到左邊菜單的 client 來建立一個客戶端的連線帳號,點擊 +add。

依序輸入紅框的部分,remark指的是類似標籤,做為日後方便辨認的名稱,unique verify key 為日後客戶端連線的密碼。compress(壓縮)、crypt(加密) 可以依自己需要選擇開啟。

客戶端

伺服端設置大致完成後就換客戶端了,客戶端一樣可以到此處下載最新的版本,這裡使用windows 環境,因此下載windows_amd64_client.tar.gz來使用。

下載後要先將檔案解壓縮,可以看到有三個檔案 npc.exe (C指的是client 客戶端),為主要的連線軟體,conf資料夾放的是連線的設定檔案。

進到 conf 資料夾後可以看到 npc.conf 檔案,使用文字編輯工具打開,做進一步的設定。

在 server_addr 輸入 nps 的伺服連線網址: 伺服器IP:8024,至於為何是8024? 因為預設是8024端口,可以到web設定的首頁看到。vkey為先前設定客戶端的 unique verify key. 另外 web端的帳蜜也可一併設定,完成編輯後儲存並關閉檔案。

預設連線端口為8024

完成設定檔編輯後,回到主程式,並右鍵以管理員身分打開,此時就會自動進行連線的動作。看到success 基本上就沒甚麼問題了,這時可以回到web設定介面,可以看到連線原本為灰底的狀態變成Online,這代表已經成功達到連線的動作了。

將客戶端端口映射到NPS

這部分會示範如何將端口映射到固定IP,這裡以XAMPP做示範,目標是讓外部能夠連線到在本機中的架設的網頁。

CMD 中使用 ipconfig 查詢本機ip

再次回到web端設定,不過這次換建立 HOST 的指向連線,一樣 +ADD,加入新的設定。
Client ID 對應到先前設定客戶端產生的 ID,remark一樣為辨認的名稱,Host 設定欲使用的網址(記得之後到網域註冊商設定DNS指向) 、 Target(IP:port)則為剛剛查詢的本機ip,以及xampp的80 port。

設定網域DNS

完成之後重啟客戶端的 npc.exe 連線成功之後即完成內網穿透了。

更改WEB控制台密碼

伺服端的設定檔位在 /etc/nps/conf 中,切換至此資料夾前記得先使用指令切換到管理員,不然權限不足會無法編輯。

suod su
cd /etc/nps/conf
sudo nano nps.conf

在nps.conf中找到web的地方,將使用者帳號及密碼更改

#web
web_host=a.o.com
web_username=junyou
web_password=apple

更改完後記得 sudo nps restart 重啟伺服器

sudo nps restart

Advanced Text Block

Qubely blocks is added to the Gutenberg editor as soon as you install the plugin. You can start using it as any other Gutenberg block. Add ready blocks using the plus sign where you’ll find a new section of blocks under the Qubely icon.

Gandi 網域註冊 8 折優惠

點擊以下連結註冊,可以獲得作者推薦優惠 網域註冊8折優惠或是2.5 折的 Simple Hosting S+ 主機優惠

3 則留言

  1. 您好!

    想問下貴站能不能發帶錨文本即(關鍵詞和超鏈)的軟文?軟文我們提供。

    如果能發,麻煩給我報發文一篇的價格。文章我們可以提供。價格合適,我們準備好文章後發你審核。如果還有其他站能發,麻煩也發下網址+報價

    期待你的回復!

    祝好

    Luna

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *