socket_bind (): невозможно связать адрес (Ubuntu на Amazon EC2)

Я пытаюсь использовать Sockets в экземпляре EC2, но когда я пытаюсь запустить код, я получаю следующую ошибку:

PHP Предупреждение: socket_bind (): невозможно связать адрес [99]: не удается назначить запрошенный адрес в sockets_test.php в строке 45

Вот часть соответствующего кода:

$CFG = new stdClass(); $CFG->chat_serverip = 'MY_PUBLIC_EC2_IP'; $CFG->chat_serverport = '9111'; $listen_socket = socket_create(AF_INET, SOCK_STREAM, 0)) socket_bind($listen_socket, $CFG->chat_serverip, $CFG->chat_serverport) 

Это прекрасно работает, если я использую 127.0.0.1 или Private IP. Моя группа безопасности имеет следующие правила:

 0-65535 0.0.0.0/0 (TCP) 0-65535 0.0.0.0/0 (UDP) ALL 0.0.0.0/0 (ICMP) 

Вы не можете привязываться к внешнему IP-адресу, вы должны привязываться к внутреннему IP-адресу и настраивать правило, чтобы разрешить этот порт, поэтому, когда они подключаются к внешнему IP-порту и порту, он перенаправляется на внутренний IP-адрес.

У фантомов есть вопрос,

нам нужно связать внутренний ip. Мы можем видеть по ifconfig , а не по внешнему IP- адресу. Мы не можем этого видеть.