提示
這篇文章是配合 開源且強大的軟路由系統 – pfSense 的延伸文章,請配合著一起看。
前言
在前面一篇文章我們設定完了 DHCP Server。但這個時候,我們的客戶端獲得的都是私人的 IP 位址,公網是沒辦法直接訪問的。所以如果我們的主機上有要對外開放的服務,又該怎麼做呢?
這時候,就要借助 Port Forward 了,也是你在大部分路由器上可以看到的功能。他可以讓路由器將被指定的 Port,指向內部主機。
環境簡介
我們先模擬一個場景:
假設我們的公網 IP 是 1.1.1.1
。
而我們的私人網段是 10.0.1.0/24
,路由器在 10.0.1.1
上且開啟了 DHCP 伺服器。
在這裡面有一台 Windows 主機獲得了 IP 位址 10.0.1.2
,上面在 TCP
80
開啟了 Nginx。
現在的目標就是要讓外網訪問 1.1.1.1
的 TCP
80
時,能指向這台 Windows 主機上的 Nginx。
設定步驟
使用 pfSense 的網頁管理介面,前往 Firewall
的 NAT
,你會隨即看到 Port Forward
,我們點選 Add
新增規則。
首先 Interface 的部分,就是我們外網的介面卡,通常就是他預設的 WAN
,我們保持不動。Protocol 的部分,因為我們是 Nginx,所以選擇 TCP
即可。而 Destination port range 則是設定我們要的 Port 80
。
再來是下方轉發的目的地,目標 IP 就是那台 Windows 的 10.0.1.2
,而內部 Port 也是設定 80
,Description 則是註記而已;這樣就可以拉到下面 Save
了。
根據指示,點選 Apply Changes
完成配置。
接著,打開你的瀏覽器並輸入公網 IP 位址,就可以看到 Nginx 的歡迎頁面了。
同場加映:限制來源位址
上面的 Port Forward 範例沒有設定來源 IP 位址,也就是全世界都可以訪問,但是這麼做不一定是安全的。所以這邊要來講解,如何限制指定的網段才能訪問網站。
前往 Firewall
的 Aliases
,我們現在要來建立一個 IP 的列表,點選 Import
。( Add
的編輯模式很笨)
接著我們需要給他名稱、描述以及最下方的網段,可以用 CIDR 表示哦!完成後 Save
儲存就好。
接著回到 Firewall
的 NAT
,我們編輯一下上面那個範例的規則,點選右邊的那支筆。
展開 Source 的選單,將 Type 選擇為 Single host or alias
,後面的欄位則輸入剛剛規則的名稱,像我就是輸入 example1
。
完成後頁面下拉點選 Save
,並 Apply Changes
。
現在,你的路由器只有在允許的網段訪問,才會提供網站或服務囉!