我在 EC2 執行個體上託管網站。如何允許我的使用者透過 HTTP (80) 或 HTTPS (443) 進行連線?

3 分的閱讀內容
0

我在 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上託管我的網站。我希望使用者透過 HTTP(連接埠 80)或 HTTPS(連接埠 443)連接到我的網站。

解決方法

若要允許連接埠 80 和 443 上的流量,必須設定關聯的安全群組和網路存取控制清單 (network ACL)。

安全群組規則

對於 HTTP 流量,請在連接埠 80 上新增從來源位址 0.0.0.0/0 的傳入規則。

對於 HTTPS 流量,請在連接埠 443 上新增從來源位址 0.0.0.0/0 的傳入規則。

這些傳入規則允許來自 IPv4 位址的流量。若要允許 IPv6 流量,請在相同的連接埠上新增從來源位址 ::/0 的傳入規則。如需關於建立或修改安全群組的詳細資訊,請參閱使用安全群組控制資源的流量

安全群組具有狀態,因此自動允許從執行個體傳回使用者的流量。您不需要修改安全群組的傳出規則。

注意: 下列範例顯示在 TCP 連接埠 80 (HTTP) 和 443 (HTTPS) 上允許 IPv4 和 IPv6 流量的安全群組規則。確定您的使用案例是否必須允許其他流量來源 (例如 SSH 或 RDP) 登入執行個體。然後,請確保您的 SG 具有相關的傳入規則以允許所需的流量。

傳入規則

類型通訊協定連接埠範圍來源
HTTP (80)TCP (6)800.0.0.0/0
HTTP (80)TCP (6)80::/0
HTTPS (443)TCP (6)4430.0.0.0/0
HTTPS (443)TCP (6)443::/0

網路 ACL

預設網路 ACL 允許所有傳入和傳出 IPv4 流量。如果您的使用者透過 IPv6 連線,而 Amazon Virtual Private Cloud (Amazon VPC) 具有關聯的 IPv6 CIDR 區塊,則預設網路 ACL 亦會自動新增規則,允許所有傳入和傳出 IPv6 流量。但是,如果您使用具有限制更嚴格的規則的自訂網路 ACL,則必須明確允許連接埠 80 和 443 上的流量。

網路 ACL 是無狀態的,因此您必須新增傳入和傳出規則,以允許連線到您的網站。如需關於修改網路 ACL 規則的詳細資訊,請參閱使用網路 ACL 控制子網路的流量

注意: 下列範例顯示允許 TCP 連接埠 80 (HTTP) 和 443 (HTTPS) 上的流量的自訂網路 ACL。網路 ACL 會套用至整個子網路中的所有資源,而不只是單一 EC2 執行個體。在範例組態中,除了目的地連接埠 80 和 443 上的流量之外,相同子網路中資源傳入和傳出的所有流量都會被封鎖。確定您的使用案例是否必須允許其他流量來源 (例如 SSH 或 RDP) 登入執行個體。然後,確保您擁有相關的傳入規則來允許所需的流量。

傳入規則

規則編號類型通訊協定連接埠範圍來源允許/拒絕
100HTTP (80)TCP (6)800.0.0.0/0允許
101HTTPS (443)TCP (6)4430.0.0.0/0允許
102HTTP (80)TCP (6)80::/0允許
103HTTPS (443)TCP (6)443::/0允許
*所有流量所有所有::/0拒絕
*所有流量所有所有0.0.0.0/0拒絕

傳出規則

規則編號類型通訊協定連接埠範圍目的地允許/拒絕
100自訂 TCP 規則TCP (6)1024-655350.0.0.0/0允許
101自訂 TCP 規則TCP (6)1024-65535::/0允許
*所有流量所有所有::/0拒絕
*所有流量所有所有0.0.0.0/0拒絕

連線遭拒錯誤疑難排解

連線遭拒錯誤表示連線請求會路由至執行個體,但不會從指定連接埠上的服務收到。如果主機 A 向主機 B 啟動 TCP 連線並收到連線遭拒錯誤,則該錯誤表示下列情況:

  • 首先,主機 A 將 TCP SYN 封包傳送至主機 B。
  • 然後,主機 B 傳送 TCP RST 封包以回覆主機 A。

如果遇到此錯誤,即使在安全群組和網路 ACL 中允許 TCP 連接埠 80 和 443 之後,也可進行下列疑難排解:

  • 諸如 httpd (Apache) 之類的服務常駐程式未執行或處於停止狀態。

若要進行疑難排解,請檢查服務在 EC2 執行個體中是否處於執行狀態。

  • 服務正在錯誤的連接埠上偵聽。

若要進行疑難排解,請檢查 EC2 執行個體是否在所需的 TCP 連接埠 (80/443) 上偵聽。

  • 連接埠被防火牆封鎖。

若要進行疑難排解,請檢查 EC2 執行個體中的作業系統層級防火牆是否封鎖所需連接埠上的傳入 TCP 流量。

AWS 官方
AWS 官方已更新 2 年前