一、什麼是埠轉發?
埠是計算機上網路應用程序進行通訊的標識符,類似於一個門牌號碼。通常來說,埠號從0-65535,其中0-1023是被系統佔用的,不能被應用程序使用。當我們在本地啟動一個服務時,比如使用Node.js建立了一個Web伺服器,監聽在本地的3000埠上,我們可以通過http://localhost:3000來訪問該服務。但是,本地服務只能被本地訪問,如果我們想讓外部的設備也能訪問該服務,就需要進行埠轉發。
埠轉發是通過路由器將訪問外部IP地址對應埠的請求轉發到內網某個設備的指定埠上。也就是說,當我們在路由器上配置埠轉發規則後,外部設備訪問路由器IP地址及對應埠時,路由器會將請求轉發到內網指定的設備IP和埠。
二、為什麼需要進行埠轉發?
一般情況下,我們的家用路由器只有一個公網IP地址,而部署在本地的伺服器或服務實際上是內網IP地址。如果想讓外網用戶訪問到自己提供的服務,就需要進行埠轉發。
例如,我們在家裡有一台NAS伺服器,部署了FTP服務,我們可以使用內網IP地址加埠號來訪問該服務,但是外網用戶不能使用我們的公網IP地址直接訪問FTP服務,如果我們在路由器上配置了埠轉發規則,外網用戶就能夠通過我們的公網IP地址和FTP服務埠來訪問該服務了。
三、如何進行埠轉發?
一般情況下,路由器的管理頁面都會提供埠轉發的功能。不同品牌的路由器設置方式可能略有不同,一般步驟如下:
1、進入路由器管理頁面,找到「埠轉發」或「虛擬伺服器」等配置選項。
2、選擇要進行埠轉發的服務類型,通常包括HTTP、FTP、SSH等。
3、填寫轉發規則,包括轉發的源埠、目標設備的IP地址、目標埠等信息。
4、保存設置,啟用配置。
四、如何在本地模擬埠轉發?
在有些情況下,我們無法使用路由器進行埠轉發,比如我們在開發過程中需要模擬多台設備同時訪問服務,此時我們可以藉助第三方軟體來實現本地埠轉發。
以下是Node.js下使用localtunnel模塊實現本地埠轉發的示例代碼:
// 安裝localtunnel模塊 npm install -g localtunnel // 啟動本地服務 node app.js // 假設該服務在本地監聽在3000埠上 // 啟動本地轉發 lt --port 3000 --subdomain example // 將本地3000埠轉發到example.localtunnel.com域名
執行以上命令後,localtunnel會將本地的3000埠轉發到一個隨機分配的域名,例如:https://example.localtunnel.com。
通過訪問轉發後的域名,我們就可以訪問本地3000埠上的服務了。
五、小結
本文對埠轉發進行了詳細的介紹和闡述,包括了埠轉發的概念、作用、配置方法以及本地模擬埠轉發的示例代碼。掌握了埠轉發的相關知識,可以幫助我們實現遠程訪問本地服務,提高開發效率和便利性。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/276026.html