讓網站被外部看到,需要哪些網路概念?
網站在自己的電腦上看得到,不代表外部的人也連得到。要讓 Blog 對外開放,需要先了解幾個基本概念:
- 公網 IP:你的網路在 Internet 上的對外位址,全世界都看得到
- 私網 IP:家裡或辦公室內部網路的位址,只有同一個區網看得到
- 路由器:連接私網與公網,負責轉送封包
- Port(連接埠):每個服務對應一個「門牌號碼」,例如 HTTP 預設是
80,HTTPS 是443
在這個系列架設的 LAMP 環境中,Apache 預設使用 80 埠,所以要確保這個埠可以從外部連進來。
在 Alpine Linux 上管理防火牆
Alpine 可以使用 iptables 或 nftables 管理防火牆規則,以下是 iptables 的簡單範例:
# 允許 HTTP (80) 與 HTTPS (443) 連線進入
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 查看目前的規則
sudo iptables -L
安全提醒
把家用網路暴露到公網之前,務必注意:
- 隨意對外開放服務,可能很快就會被自動化掃描工具盯上
- 建議先了解基本資安觀念:防火牆規則、SSH 安全設定、避免使用弱密碼
- 只開放必要的 Port,其他服務盡量不要對外公開
路由器上的 Port Forwarding
如果伺服器架在家用網路裡,還需要在路由器設定 Port Forwarding(連接埠轉發):
- 登入路由器設定頁面(通常是
192.168.0.1或192.168.1.1) - 找到「Port Forwarding」或「虛擬伺服器」設定
- 新增規則,把公網的
80埠轉發到伺服器的內網 IP - 儲存設定,必要時重新啟動路由器
設定完成後,外部使用者透過你的公網 IP,就能連到伺服器上的 Apache。
測試網站是否能對外連線
- 區網內:用瀏覽器輸入伺服器的內網 IP(例如
http://192.168.1.100) - 外網:用瀏覽器輸入公網 IP(例如
http://你的公網IP)
如果看不到網頁,依序檢查:
- 防火牆規則是否允許該 Port
- Apache 服務是否正在執行(
rc-service apache2 status) - 路由器的 Port Forwarding 設定是否正確
小結
這一篇談到了:公網/私網 IP、Port 的概念、Alpine 上的防火牆設定,以及路由器的連接埠轉發。把這些串起來,你的 Blog 就具備了「被外部看到」的基本條件。網路安全是長期需要關注的課題,建議之後持續補充這方面的知識。