Я запускаю Ubuntu на сервере Amazon EC2. У меня есть публичный 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
The Gateway, я по результатам route -n
команда:
Destination Gateway 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 Link encap:Ethernet HWaddr 06:01:36:ee:0f:0d inet addr:172.31.47.199 Bcast:172.31.47.255 Mask:255.255.240.0 inet6 addr: fe80::401:36ff:feee:f0d/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:9001 Metric:1 RX packets:8169768 errors:0 dropped:0 overruns:0 frame:0 TX packets:8126026 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:6143591550 (6.1 GB) TX bytes:6277418496 (6.2 GB)
К вашему сведению, статический IP-адрес (52.38.20.76
) выполняется с использованием эластичного IP-адреса Amazon.
У кого-нибудь есть предложение о том, как изменить добавление общедоступного IP-адреса к интерфейсам?
EC2 работает не так.
Все Инстансы EC2 находятся за инфраструктурой NAT Amazon. Невозможно напрямую назначить EIP или другой общедоступный IP-адрес экземпляру EC2.
Ваш хост AWS напрямую не знает свой общедоступный IP-адрес, EIP или иное. AWS позаботится об этом за вас. Это означает, что ваше приложение не может различать то, что подключается к внутреннему IP-адресу и внешнему.
С точки зрения вашего приложения вы должны привязать к 0.0.0.0:3478, AWS преобразует внешний адрес в ваш внутренний.