選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

啟用私有資源以在 VPC 外部通訊

焦點模式
啟用私有資源以在 VPC 外部通訊 - Amazon Virtual Private Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本節說明如何建立和使用 NAT 執行個體,以啟用私有子網路中的資源,以在虛擬私有雲端外部進行通訊。

1. 為 NAT 執行個體建立 VPC

按照以下程序建立包含公有子網路和私有子網路的 VPC。

若要建立 VPC
  1. https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

  2. 選擇建立 VPC

  3. 針對 Resources to create (建立資源),選擇 VPC and more (VPC 等)。

  4. 針對自動產生名稱標籤,輸入 VPC 的名稱。

  5. 若要設定子網路,請執行下列動作:

    1. 對於 Number of Availability Zones (可用區域數量),請根據您的需求選擇 12

    2. 針對 Number of public subnets (公用子網路數量),請確定每個可用區域有一個公用子網路。

    3. 針對 Number of private subnets (私有子網路數量),請確定每個可用區域有一個私有子網路。

  6. 選擇建立 VPC

2. 為 NAT 執行個體建立安全群組

按照下表所述的規則建立安全群組。這些規則可讓 NAT 執行個體接收從私有子網路中執行個體流向網際網路的流量,以及來自您網路的 SSH 流量。NAT 執行個體也可以傳送流量到網際網路,讓私有子網路中的執行個體能取得軟體更新。

下列是建議的傳入規則。

來源 通訊協定 連接埠範圍 評論
私有子網路 CIDR TCP 80 允許來自私有子網路伺服器的傳入 HTTP 流量
私有子網路 CIDR TCP 443 允許來自私有子網路伺服器的傳入 HTTPS 流量
您網路的公有 IP 地址範圍 TCP 22 允許傳入 SSH 從您的網路存取 NAT 執行個體 (透過網際網路閘道)

下列是建議的傳出規則。

目的地 通訊協定 連接埠範圍 評論
0.0.0.0/0 TCP 80 允許傳出 HTTP 存取網際網路。
0.0.0.0/0 TCP 443 允許傳出 HTTPS 存取網際網路。
建立安全群組
  1. https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

  2. 在導覽窗格中,選擇安全群組

  3. 選擇 Create Security Group (建立安全群組)。

  4. 輸入安全群組的名稱和說明。

  5. VPC 欄位中選取 NAT 執行個體的 VPC ID。

  6. 傳入規則下新增傳入流量的規則,如下所示:

    1. 選擇新增規則。在類型欄位中選擇 HTTP,然後在來源欄位中輸入私有子網路的 IP 地址範圍。

    2. 選擇新增規則。在類型欄位中選擇 HTTPS,然後在來源欄位中輸入私有子網路的 IP 地址範圍。

    3. 選擇新增規則。在類型欄位中選擇 SSH,然後在來源欄位中輸入網路的 IP 地址範圍。

  7. 傳出規則下新增傳出流量的規則,如下所示:

    1. 選擇新增規則。在類型欄位中選擇 HTTP,然後在目的地欄位中輸入 0.0.0.0/0。

    2. 選擇新增規則。在類型欄位中選擇 HTTPS,然後在目的地欄位中輸入 0.0.0.0/0。

  8. 選擇 Create Security Group (建立安全群組)

如需詳細資訊,請參閱安全群組

3. 建立 NAT AMI

將 NAT AMI 設定為在 EC2 執行個體上執行 NAT。您必須先建立 NAT AMI,然後才能使用 NAT AMI 啟動 NAT 執行個體。

如果您計劃將 Amazon Linux 以外的作業系統用於 NAT AMI,則請參閱相應作業系統的說明文件,從中了解如何設定 NAT。請務必儲存這些設定,以便這些設定在執行個體重新啟動後仍然存在。

為 Amazon Linux 建立一個 NAT AMI
  1. 啟動執行 AL2023 或 Amazon Linux 2 的 EC2 執行個體。請務必指定您為 NAT 執行個體建立的安全群組。

  2. 連線到執行個體,並在執行個體上執行下列命令以啟用 iptables。

    sudo yum install iptables-services -y sudo systemctl enable iptables sudo systemctl start iptables
  3. 在執行個體上執行下列操作以啟用 IP 轉送,以便在重新開機後持續進行:

    1. 使用 nanovim 等文字編輯器,建立以下組態檔案:/etc/sysctl.d/custom-ip-forwarding.conf

    2. 將以下行新增至組態檔案。

      net.ipv4.ip_forward=1
    3. 儲存組態檔案並關閉文字編輯器。

    4. 執行以下命令,套用組態檔案。

      sudo sysctl -p /etc/sysctl.d/custom-ip-forwarding.conf
  4. 在執行個體上執行以下命令,並記下主要網路介面的名稱。下一個步驟您將需要這項資訊。

    netstat -i

    在下面的範例輸出中,docker0 是由 Docker 建立的網絡介面,eth0 是主要網路介面,lo 是迴路介面。

    Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg docker0 1500 0 0 0 0 0 0 0 0 BMU eth0 9001 7276052 0 0 0 5364991 0 0 0 BMRU lo 65536 538857 0 0 0 538857 0 0 0 LRU

    在下列範例輸出中,主要網路介面為 enX0

    Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg enX0 9001 1076 0 0 0 1247 0 0 0 BMRU lo 65536 24 0 0 0 24 0 0 0 LRU

    在下列範例輸出中,主要網路介面為 ens5

    Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg ens5 9001 14036 0 0 0 2116 0 0 0 BMRU lo 65536 12 0 0 0 12 0 0 0 LRU
  5. 在執行個體上執行下列命令以設定 NAT。如果主要網路介面不是 eth0,則使用您在上一個步驟中記下的主要網路介面來取代 eth0

    sudo /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo /sbin/iptables -F FORWARD sudo service iptables save
  6. 從 EC2 執行個體建立 NAT AMI。如需詳細資訊,請參閱《Amazon EC2 使用者指南》中的從執行個體建立 Linux AMI

4. 啟動 NAT 執行個體

按照下列步驟操作,透過您建立的 VPC、安全群組和 NAT AMI 來啟動 NAT 執行個體。

啟動 NAT 執行個體
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在儀表板上,選擇啟動執行個體

  3. 名稱欄位中輸入 NAT 執行個體名稱。

  4. 應用程式和作業系統映像欄位中,選取 NAT AMI (依序選擇瀏覽更多 AMI我的 AMI)。

  5. 執行個體類型欄位中,選擇提供 NAT 執行個體所需運算、記憶體和儲存資源的執行個體類型。

  6. 對於金鑰對,請選取現有的金鑰對或選擇建立新的金鑰對

  7. 針對 Network settings (網路設定),執行下列操作:

    1. 選擇編輯

    2. VPC 欄位選擇您建立的 VPC。

    3. 對於子網路,請選擇先前建立的公有子網路。

    4. Auto-assign public IP (自動指派公有 IP) 中,選擇 Enable (啟用)。此外,也可在啟動 NAT 執行個體之後,配置彈性 IP 地址並將其指派給 NAT 執行個體。

    5. 對於防火牆,請選擇選取現有的安全群組,然後選擇先前建立的安全群組。

  8. 選擇啟動執行個體。選擇執行個體 ID 以開啟執行個體詳細資訊頁面。等待執行個體狀態變更為執行中,並等待狀態檢查成功。

  9. 停用 NAT 執行個體的來源/目的地檢查 (請參閱 5. 停用來源/目標檢查)。

  10. 更新路由表以將流量傳送至 NAT 執行個體 (請參閱 6. 更新路由表)。

5. 停用來源/目標檢查

每個 EC2 執行個體預設都會執行來源/目標檢查。這表示執行個體必須是其傳送或接收流量的來源或目標。但當它本身不是來源或目標時,NAT 執行個體必須能夠傳送並接收流量。因此,您必須停用 NAT 執行個體的來源/目標檢查。

停用來源/目的地檢查
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在導覽窗格中,選擇 Instances (執行個體)。

  3. 選取 NAT 執行個體。

  4. 選擇動作聯網變更來源/目的地檢查

  5. 來源/目的地檢查欄位中選取停止

  6. 選擇 Save (儲存)。

  7. 如果 NAT 執行個體具有次要網路介面,請從 Networking (聯網) 索引標籤的 Network interfaces (網路介面) 對其進行選擇。選擇界面 ID 以移至網路界面頁面。選擇 Actions (動作)、Change source/dest. check (變更來源/目標檢查),清除 Enable (啟用),選擇 Save (儲存)。

6. 更新路由表

私有子網路的路由表必須具有路由,能將網際網路的流量傳送至 NAT 執行個體。

更新路由表
  1. https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

  2. 在導覽窗格中,選擇 Route tables (路由表)。

  3. 選取私有子網路的路由表。

  4. 路由標籤上,選擇編輯路由,然後選擇新增路由

  5. 目的地欄位中輸入 0.0.0.0/0,在目標欄位中輸入 NAT 執行個體的執行個體 ID。

  6. 選擇 Save changes (儲存變更)。

如需詳細資訊,請參閱設定路由表

7. 測試 NAT 執行個體

在啟動 NAT 執行個體並完成上述設定步驟後,您就可以執行測試,檢查私有子網路中的執行個體是否可以將 NAT 執行個體作為堡壘伺服器使用,透過 NAT 執行個體存取網際網路。

步驟 1:更新 NAT 執行個體安全群組

若要允許私有子網路中的執行個體傳送 ping 流量至 NAT 執行個體,請新增規則以允許傳入和傳出 ICMP 流量。若要允許 NAT 執行個體做為堡壘伺服器,請新增規則以允許傳出 SSH 流量至私有子網路。

更新您的 NAT 執行個體安全群組
  1. https://console.aws.amazon.com/vpc/ 開啟 Amazon VPC 主控台。

  2. 在導覽窗格中,選擇安全群組

  3. 選取與 NAT 執行個體關聯之安全群組的核取方塊。

  4. 傳入規則索引標籤上,選擇編輯傳入規則

  5. 選擇 Add rule (新增規則)。選擇 Type (類型) 的 All ICMP - IPv4 (所有 ICMP - IPv4)。在來源欄位中選擇自訂,然後輸入私有子網路的 IP 地址範圍。選擇儲存規則

  6. 傳出規則標籤上,選擇編輯傳出規則

  7. 選擇 Add rule (新增規則)。選擇 Type (類型) 的 SSH。在目的地欄位中選擇自訂,然後輸入私有子網路的 IP 地址範圍。

  8. 選擇 Add rule (新增規則)。選擇 Type (類型) 的 All ICMP - IPv4 (所有 ICMP - IPv4)。對於 Destination (目的地) 選擇 Anywhere - IPv4 (隨處 - IPv4)。選擇儲存規則

步驟 2:在私有子網路中啟動測試執行個體

在您的私有子網路中啟動執行個體。您必須允許來自 NAT 執行個體的 SSH 存取,而且必須使用您用於 NAT 執行個體的相同金鑰對。

在私有子網路中啟動測試執行個體
  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 在儀表板上,選擇啟動執行個體

  3. 選取您的私有子網路。

  4. 請勿將公有 IP 地址指派給此執行個體。

  5. 務必確保此執行個體的安全群組允許來自 NAT 執行個體或公有子網路 IP 地址範圍的傳入 SSH 存取,以及傳出 ICMP 流量。

  6. 選取用於 NAT 執行個體的相同金鑰對。

步驟 3:Ping 到啟用 ICMP 的網站

若要確認私有子網路中的執行個體是否可以使用 NAT 執行個體與網際網路通訊,請執行 ping 命令。

測試來自私有執行個體的網際網路連線
  1. 從您的本機電腦設定 SSH 代理程式轉送,讓您可以使用 NAT 執行個體作為堡壘伺服器。

    Linux and macOS
    ssh-add key.pem
    Windows

    下載並安裝 Pageant (如果尚未安裝)。

    使用 PuTTYgen 轉換您的私有金鑰

    啟動 Pageant,在任務列的 Pageant 圖示 (可能隱藏) 上按一下滑鼠右鍵,然後選擇 Add Key (新增金鑰)。選取您建立的 .ppk 檔案,如需要,則輸入密碼短語,然後選擇 Open (開啟)。

    ssh-add key.pem
  2. 從本機電腦連線到 NAT 執行個體。

    Linux and macOS
    ssh -A ec2-user@nat-instance-public-ip-address
    Windows

    使用 PuTTY 連線到 NAT 執行個體 針對 Auth (驗證),您必須選取 Allow agent forwarding (允許代理程式轉送),並將 Private key file for authentication (要驗證的私有金鑰檔案) 留空。

    ssh -A ec2-user@nat-instance-public-ip-address
  3. 在 NAT 執行個體中,執行 ping 命令,並指定啟用 ICMP 的網站。

    [ec2-user@ip-10-0-4-184]$ ping ietf.org

    若要確認您的 NAT 執行個體可以存取網際網路,請確認您收到如下的輸出,然後按 Ctrl+C 以取消 ping 命令。否則,請確認 NAT 執行個體位於公有子網路中 (其路由表具有通往網際網路閘道的路由)。

    PING ietf.org (104.16.45.99) 56(84) bytes of data. 64 bytes from 104.16.45.99 (104.16.45.99): icmp_seq=1 ttl=33 time=7.88 ms 64 bytes from 104.16.45.99 (104.16.45.99): icmp_seq=2 ttl=33 time=8.09 ms 64 bytes from 104.16.45.99 (104.16.45.99): icmp_seq=3 ttl=33 time=7.97 ms ...
  4. 從您的 NAT 執行個體,使用其私有 IP 地址連線到您私有子網路中的執行個體。

    [ec2-user@ip-10-0-4-184]$ ssh ec2-user@private-server-private-ip-address
  5. 從您的私有執行個體執行 ping 命令,測試能否連線到網際網路。

    [ec2-user@ip-10-0-135-25]$ ping ietf.org

    若要確認您的私有執行個體可以透過 NAT 執行個體存取網際網路,請確認您收到如下的輸出,然後按 Ctrl+C 以取消 ping 命令。

    PING ietf.org (104.16.45.99) 56(84) bytes of data. 64 bytes from 104.16.45.99 (104.16.45.99): icmp_seq=1 ttl=33 time=8.76 ms 64 bytes from 104.16.45.99 (104.16.45.99): icmp_seq=2 ttl=33 time=8.26 ms 64 bytes from 104.16.45.99 (104.16.45.99): icmp_seq=3 ttl=33 time=8.27 ms ...
故障診斷

如果從私有子網路中的伺服器執行 ping 命令失敗,請使用下列步驟對問題進行故障診斷:

  • 確認您是否已對啟用了 ICMP 的網站執行 Ping 動作。若未執行,伺服器則無法接收回覆封包。若要測試此作業,請從您電腦的命令列終端機執行相同的 ping 命令。

  • 確認 NAT 執行個體的安全群組是否允許來自您私有子網路的傳入 ICMP 流量。如不允許,您的 NAT 執行個體無法接收私有執行個體的 ping 命令。

  • 確認您是否已停用 NAT 執行個體的來源/目的地檢查。如需詳細資訊,請參閱5. 停用來源/目標檢查

  • 確認您是否已正確設定路由表。如需詳細資訊,請參閱6. 更新路由表

步驟 4:清理

如果私有子網路中不再需要測試伺服器,請終止該執行個體,這樣您就不再需要支付該執行個體的費用。如需詳細資訊,請參閱《Amazon EC2 使用者指南》中的終止您的執行個體

如果您不再需要 NAT 執行個體,您可以停止或終止該執行個體,這樣您就不再需要支付該執行個體的費用。如果您已建立 NAT AMI,則可以在需要時建立新的 NAT 執行個體。

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。