首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

外網無法訪問本地搭建的網站?核心在公網 IP 與路由器端口映射

     編輯:程式設計疑難解答

現象

本地電腦搭建網站(HTML/PHP),購買域名解析到「我的 IP」。
局域網內訪問域名正常,**外網訪問失敗**。

核心原因:你解析的是「內網 IP」或「動態公網 IP 無端口映射」

  1. 域名解析指向錯誤:若在域名後台填寫的是 `192.168.x.x` 或 `10.x.x.x` 等內網 IP,**外網路由器根本路由不到**。
  2. 缺乏公網 IP:大多數家寬為 **NAT 內網**,撥號獲取的是運營商內網 IP(CGNAT),**無公網 IP 直接無法被外網主動連接**。
  3. 有公網 IP 但未做端口映射:路由器擋住了外網請求,必須配置 **虛擬伺服器/端口映射**,將外網 80/443 端口轉發到內網伺服器機器的 80/443 端口。

解決方案分級

方案 A:有公網 IP(撥號獲取以非 100.64.x.x 開頭)

  1. 路由器管理頁面 → **虛擬伺服器 / 端口映射 / Port Forwarding**。
  2. 新增規則:
    外部端口:`80` (HTTP) / `443` (HTTPS)
    內部 IP:`192.168.1.100` (你的伺服器機器內網 IP,建議綁定 MAC 固定 IP)
    內部端口:`80` / `443`
    協議:`TCP` 或 `ALL`
  3. 域名解析 A 記錄指向 **路由器 WAN 口公網 IP**(可去 ip138.com 查看)。
  4. 防火牆放行 80/443 端口(Windows 防火牆/雲服務器安全組)。

方案 B:無公網 IP / 不想動路由器 / 動態公網 IP 難維護

使用內網穿透工具(Frp, Nginx Proxy Manager, Cloudflare Tunnel, 花生殼, Ngrok, Tailscale Funnel):

  • 原理:內網機器主動連接擁有公網 IP 的中繼伺服器,建立長連接隧道,外網請求經隧道轉發到本地。
  • 優點:無需公網 IP、無需路由器配置、支援 HTTPS 自動簽發。
  • 推薦:Cloudflare Tunnel (cloudflared) 免費、無流量限制、自動 HTTPS、配置簡單;Frp 自建可控、適合學習。

方案 C:直接租用雲伺服器(最省心)

幾十元/月買輕量應用伺服器(香港/新加坡/國內備案),裝寶塔面板/Nginx/PHP,域名解析到雲伺服器公網 IP。專業、穩定、不佔家裡電費頻寬。

關鍵檢查清單

  • [ ] 域名解析指向**公網 IP**(而非內網 IP)。
  • [ ] 路由器**端口映射 80/443 → 內網伺服器 IP**。
  • [ ] 伺服器防火牆**放行 80/443**。
  • [ ] 瀏覽器輸入 `https://公網IP` 能直接訪問(排除域名解析問題)。
  • [ ] 若無公網 IP → **部署內網穿透** 或 **上雲**。

家庭寬帶做對外服務,**公網 IP + 端口映射** 是基礎門檻;不具備條件請直接走**內網穿透**或**雲伺服器**路線,别在路由器配置上耗費生命。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved