在企業(yè)網絡中,NAT(網絡地址轉換)是防火墻的核心功能之一,通過將內部私有 IP 轉換為外部公網 IP,實現(xiàn) “多設備共享公網訪問” 與 “隱藏內部網絡結構” 的雙重目標。不少管理員在配置 NAT 時,常因步驟混亂或命令錯誤導致網絡不通。小編將以主流防火墻(Linux firewalld、Cisco IOS)為例,詳解 NAT 配置的 5 個核心步驟與對應命令,助你快速完成 NAT 部署。
一、先明確:防火墻 NAT 的核心類型與作用
在配置前需區(qū)分兩種常見 NAT 類型,確保匹配業(yè)務需求:
SNAT(源地址轉換):用于內部設備訪問外部網絡,將內部私有 IP(如 192.168.1.0/24)轉換為防火墻的公網 IP,實現(xiàn)多設備共享一個公網地址上網;
DNAT(目的地址轉換 / 端口映射):用于外部用戶訪問內部服務,將公網 IP 的特定端口(如 8080)映射到內部服務器的私有 IP 與端口(如 192.168.1.100:80),隱藏內部服務器真實地址。
無論是 SNAT 還是 DNAT,配置核心都是 “定義地址池 / 端口映射規(guī)則→綁定網絡接口→啟用規(guī)則”,以下分步驟詳解。
二、防火墻配置 NAT 的 5 個核心步驟(以 Linux firewalld 為例)
Linux 系統(tǒng)的 firewalld 是主流開源防火墻,支持圖形界面與命令行配置,以下為命令行操作(適用于 CentOS 7/8、RHEL 7/8):
步驟 1:確認防火墻狀態(tài)與網絡接口
首先需確保 firewalld 已啟動,并明確內外網接口名稱(如內網接口ens33、外網接口ens37),避免接口配置錯誤導致 NAT 失效。
查看 firewalld 狀態(tài):systemctl status firewalld(顯示 “active (running)” 為已啟動,若未啟動需執(zhí)行systemctl start firewalld);
查看網絡接口:ip addr(記錄內網接口名,通常連接內部局域網;外網接口名,通常連接公網網關);
示例:內網接口ens33(IP:192.168.1.1/24),外網接口ens37(IP:203.0.113.1/24,公網 IP)。
步驟 2:配置 SNAT(內部訪問外部)
SNAT 的核心是 “將內部私有 IP 段的流量,通過外網接口的公網 IP 轉換后發(fā)送到外部”,命令需指定 “內部 IP 段、外網接口、公網 IP”。
執(zhí)行 SNAT 配置命令(永久生效):
firewall-cmd --permanent --direct --add-rule ipv4 nat POSTROUTING 0 -s 192.168.1.0/24 -o ens37 -j SNAT --to-source 203.0.113.1
命令解析:
--permanent:配置永久生效(重啟 firewalld 不丟失);
-s 192.168.1.0/24:指定內部私有 IP 段;
-o ens37:指定外網接口(流量從該接口流出);
--to-source 203.0.113.1:指定轉換后的公網 IP(防火墻外網接口的 IP)。
步驟 3:配置 DNAT(外部訪問內部服務)
若需外部用戶訪問內部服務器(如 Web 服務、數(shù)據庫),需配置 DNAT(端口映射),命令需指定 “公網 IP、公網端口、內部服務器 IP、內部端口”。
示例:將公網 IP(203.0.113.1)的 8080 端口,映射到內部 Web 服務器(192.168.1.100)的 80 端口,執(zhí)行命令(永久生效):
firewall-cmd --permanent --direct --add-rule ipv4 nat PREROUTING 0 -d 203.0.113.1 -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.100:80
命令解析:
-d 203.0.113.1:指定防火墻的公網 IP(外部用戶訪問的 IP);
-p tcp --dport 8080:指定外部訪問的協(xié)議(TCP)與端口(8080);
--to-destination 192.168.1.100:80:指定內部服務器的私有 IP 與端口。
步驟 4:開放對應端口(避免防火墻阻斷流量)
配置 DNAT 后,需在防火墻的 “過濾規(guī)則” 中開放公網端口(如 8080),否則外部流量會被防火墻攔截,無法到達內部服務器。
開放公網端口 8080(永久生效):
firewall-cmd --permanent --add-port=8080/tcp
若內部服務器需訪問外部(如更新軟件),無需額外開放內網端口(SNAT 已自動允許內部流量流出)。
步驟 5:重載防火墻規(guī)則,驗證配置
配置完成后需重載 firewalld,使規(guī)則生效,再通過測試驗證 NAT 是否正常工作。
重載 firewalld:firewall-cmd --reload;
驗證 SNAT:在內部設備(如 192.168.1.10)訪問www.baidu.com,執(zhí)行curl ifconfig.me(查看公網 IP,若顯示 203.0.113.1,說明 SNAT 生效);
驗證 DNAT:在外部設備(如家用電腦)訪問http://203.0.113.1:8080,若能打開內部 Web 服務器頁面,說明 DNAT 生效;
查看 NAT 規(guī)則:firewall-cmd --direct --get-rules ipv4 nat(確認配置的 SNAT/DNAT 規(guī)則已存在)。
三、Cisco IOS 防火墻 NAT 配置(補充說明)
若使用 Cisco 路由器 / 防火墻(如 Cisco 2911),配置步驟邏輯一致,但命令格式不同,核心 5 步如下:
進入全局配置模式:enable → configure terminal;
定義內部接口與外部接口:
interface FastEthernet0/0(內網接口)→ ip nat inside;
interface FastEthernet0/1(外網接口,公網 IP:203.0.113.1)→ ip nat outside;
配置 SNAT(內部訪問外部):
access-list 1 permit 192.168.1.0 0.0.0.255(允許內部 IP 段);
ip nat inside source list 1 interface FastEthernet0/1 overload(overload 表示多對一共享 IP);
配置 DNAT(外部訪問內部):
ip nat inside source static tcp 192.168.1.100 80 203.0.113.1 8080 extendable(TCP 8080 映射到 192.168.1.100:80);
驗證配置:show ip nat translations(查看 NAT 轉換記錄)、ping 203.0.113.1(外部測試連通性)。
四、配置 NAT 的常見問題與避坑技巧
接口方向配置錯誤:SNAT 需綁定 “外網接口”(-o參數(shù)),DNAT 需綁定 “公網 IP 對應的接口”,若接口方向搞反(如 SNAT 用內網接口),會導致 NAT 失效;
未重載規(guī)則:Linux firewalld 配置后必須執(zhí)行firewall-cmd --reload,Cisco 需退出配置模式(exit),否則規(guī)則不生效;
端口沖突:DNAT 映射的公網端口(如 8080)需未被防火墻其他服務占用,可通過netstat -tuln | grep 8080(Linux)檢查端口占用;
內部服務器網關錯誤:內部服務器的網關必須指向防火墻的內網 IP(如 192.168.1.1),否則流量無法到達防火墻,無法完成 NAT 轉換。
防火墻配置 NAT 的核心是 “明確類型(SNAT/DNAT)→ 綁定接口→ 定義規(guī)則→ 開放端口→ 驗證生效”,無論 Linux firewalld 還是 Cisco IOS,步驟邏輯一致,僅命令格式不同。配置時需注意接口方向、端口沖突、網關設置三個關鍵點,通過 “測試驗證” 確保 NAT 正常工作。掌握 NAT 配置,可實現(xiàn)企業(yè)多設備共享公網訪問,同時隱藏內部網絡結構,提升網絡安全性與可用性。