我在公有子網路中的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體具有公有 IP 地址或網際網路閘道,但無法存取網際網路。
簡短描述
若要疑難排解 Amazon EC2 無法存取網際網路的原因,請執行下列動作:
- 確認 EC2 執行個體符合所有先決條件。
- 確認執行個體具有公用 IP 位址。
- 確認防火牆未封鎖存取。
解決方法
確認執行個體符合所有先決條件
執行個體必須符合下列條件:
確認執行個體具有公用 IP 位址
如果公用子網路中的執行個體沒有公用 IP 位址,則該執行個體無法在其所在的虛擬私有雲端(VPC)外部存取。即使執行個體具有網際網路閘道,也是如此。
若要允許執行個體連線至網際網路,請先配置彈性 IP 位址,然後將此彈性 IP 位址與執行個體建立關聯。
確認防火牆未封鎖存取
如果執行個體符合上述條件且網際網路連線問題持續存在,則您可能會在作業系統中執行本機防火牆。最佳做法是使用安全群組,而不是在作業系統中安裝本機防火牆。請確定停用本機防火牆不會影響您的工作負載。
# For Uncomplicated Firewall
sudo ufw disable
# For firewalld
sudo systemctl disable firewalld --now
如果您必須使用防火牆,則網際網路連線問題通常與 OUTPUT 鏈有關。您可以執行下列命令來允許傳出流量:
sudo iptables -P OUTPUT ACCEPT
sudo iptables -I OUTPUT 1 -j ACCEPT
Windows Server:
對於 Windows 伺服器預設防火牆,請執行下列命令:
netsh advfirewall firewall show rule name=all
如果上述命令指出封鎖的流量,請移除舊規則或新增允許該特定連接埠流量的新規則。如需詳細資訊,請參閱 Microsoft 文件瞭解具有進階安全規則的 Windows 防火牆。
相關資訊
使用網際網路閘道連線至網際網路
使用安全群組控制資源的流量
為什麼私有子網路中的 Amazon EC2 執行個體無法使用 NAT 閘道連線至網際網路?