Amazon EC2 上的静态公共 IP 地址

Dar*_*ryl 2 ubuntu ifconfig static-ip amazon-ec2

我在 Amazon EC2 服务器上运行 Ubuntu。我有一个公共 IP 地址 ( 52.38.20.76)。

我无法将公共 IP 地址绑定到 UDP 端口:

udp listen 52.38.20.76:3478: Cannot assign requested address
Run Code Online (Sandbox Code Playgroud)

因此,我试图更改 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
Run Code Online (Sandbox Code Playgroud)

网关,我基于一个route -n命令的结果:

目标网关 Genmask Flags 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 范围:链接
          上行广播运行多播 MTU:9001 公制: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 地址添加到接口有任何建议吗?

EEA*_*EAA 5

这不是 EC2 的工作方式。

所有EC2 实例都位于 Amazon 的 NAT 基础设施之后。无法直接将 EIP 或其他公有 IP 直接分配给 EC2 实例。

  • 没错。当您为实例分配 EIP 时,Amazon 会在 EIP 和实例的私有 IP 之间配置 1:1 NAT。为什么觉得需要直接绑定公网IP? (2认同)