Ubuntu

Amazon EC2 上的靜態公共 IP 地址

  • June 16, 2020

我在 Amazon EC2 伺服器上執行 Ubuntu。我有一個公共 IP 地址 ( 52.38.20.76)。

我無法將公共 IP 地址綁定到 UDP 埠:

udp listen 52.38.20.76:3478: Cannot assign requested address

因此,我正在嘗試更改 ifconfig 以顯示公共 IP 地址而不是私有 IP 地址。但是,我嘗試過的網路更改沒有奏效。

編輯/etc/network/interfaces.d/eth0.cfg

# The primary network interface
auto eth0
#iface eth0 inet dhcp
iface eth0 inet static
address 52.38.20.76
netmask 255.255.255.0
gateway 172.31.32.1
dns-nameservers 8.8.8.8 8.8.4.4

網關,我根據一個route -n命令的結果:

目標網關 Genmask 標誌 Metric Ref Use Iface
0.0.0.0 172.31.32.1 0.0.0.0 UG 0 0 0 eth0
172.31.32.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0

目前 ifconfig 設置:

eth0 鏈路封裝:乙太網 HWaddr 06:01:36:ee:0f:0d
inet 地址:172.31.47.199 廣播:172.31.47.255 遮罩:255.255.240.0
inet6 地址:fe80::401:36ff:feee:f0d / 64 範圍:連結
UP BROADCAST RUNNING MULTICAST MTU:9001 Metric:1
RX 數據包:8169768 錯誤:0 丟棄:0 超限:0 幀:0
TX 數據包:8126026 錯誤:0 丟棄:0 超限:0 運營商:0
碰撞:0 txqueuelen:1000
RX 字節:6143591550(6.1 GB) TX 字節:6277418496(6.2 GB)

僅供參考,靜態 IP 地址 ( 52.38.20.76) 是使用 Amazon 的彈性 IP 地址完成的。

有人對如何更改將公共 IP 地址添加到介面有任何建議嗎?

這不是 EC2 的工作方式。

所有EC2 實例都位於 Amazon 的 NAT 基礎設施後面。無法直接將 EIP 或其他公共 IP 直接分配給 EC2 實例。

您的 AWS 主機不直接知道其公共 IP、EIP 或其他資訊。AWS 會為您解決這些問題。這意味著您的應用程序無法區分連接到內部 IP 和外部 IP 的東西。

從您的應用程序角度來看,您將綁定到 0.0.0.0:3478,AWS 將外部地址轉換為您的內部地址。

引用自:https://serverfault.com/questions/765663