將內網 Linux 服務器(如 Web、SSH、FTP)暴露到公網,核心是在路由器上配置 端口映射(Port Forwarding / NAT)。本文以常見家用/中小企業路由器為例,圖解從獲取公網 IP 到驗證連通的完整步驟。
firewall-cmd --add-port=80/tcp --permanent)。192.168.1.1、192.168.0.1、192.168.8.1)。
在路由器狀態/網絡信息頁面,記錄 WAN IP 地址(如 123.45.67.89)。若為動態 IP,建議配置 DDNS(花生殼、No-IP、路由器自帶)獲取固定域名。
在路由器「設備列表」/「DHCP 客戶端列表」中找到目標服務器,記錄其內網 IP(如 192.168.8.100)。

進入 轉發規則 → 虛擬服務器 / 端口映射,添加條目:
| 字段 | 示例值 | 說明 |
|---|---|---|
| 服務名稱 | Web_Server | 自定義標識 |
| 外部端口 | 80 | 公網訪問端口,建議 >1024 避免 ISP 封鎖(如 8080、8443) |
| 內部端口 | 80 | 服務器實際服務端口 |
| 內部 IP 地址 | 192.168.8.100 | Linux 服務器內網 IP |
| 協議 | TCP / ALL | Web 選 TCP,FTP 需 TCP+UDP |
| 狀態 | 啟用 | 生效 |
點擊保存/應用。
https://WAN_IP:外部端口(如 https://123.45.67.89:8080)。tcpdump -i eth0 port 80 觀察是否收到 SYN 包。| 問題 | 原因 | 解決 |
|---|---|---|
| 外網無法訪問 | ISP 封鎖 80/443/22/3389 等常用端口 | 映射到非常用高端口(如 18080、2222),或使用 frp/nps 內網穿透 |
| 路由器無公網 IP(CGNAT) | 運營商分配私有 IP(100.64.x.x、10.x.x.x) | 聯繫運營商申請公網 IP,或使用 IPv6、內網穿透方案 |
| 服務器防火牆攔截 | iptables/firewalld/ufw 未放行 | firewall-cmd --add-port=8080/tcp --permanent && firewall-cmd --reload |
| 多服務共用 80 端口 | 需根據域名分流 | Nginx 反向代理(虛擬主機)或使用 SNI Proxy |
端口映射是讓內網服務觸達公網的基礎技能,但暴露端口即意味著風險。生產環境請優先考慮 VPN、內網穿透、雲端部署等更安全的架構。