Я использую простой сервер WebSocket на Amazon EC2 (Fedora Core). Я открыл соответствующий порт с помощью ec2-authorize и проверил, что он открыт. Iptables определенно не работает. Однако я не могу подключиться к порту извне EC2.
Я пробовал следующее (мой сервер работает на порту 7000):
telnet ec2-public-dns.xx.xx.xx.amazon.com 7000
(изнутри EC2: подключается нормально)
nmap localhost
(вывод включает строку: 7000 / tcp open afs3-fileserver)
telnet ec2-public-dns.xx.xx.xx.amazon.com 7000
(на этот раз с моего локального компьютера: я получаю сообщение «В соединении отказано: невозможно подключиться к удаленному хосту»)
Странно вот что: если я запускаю Nginx на порту 7000, он работает, и я могу подключиться извне EC2! И сервер WebSocket выходит из строя на 80-м порту, где Nginx работает нормально.
Для меня это говорит о проблеме с сервером WebSocket, НО я могу успешно подключиться к нему из EC2. (И он отлично работает на другой учетной записи VPS).
Как я могу отладить это дальше? Если кто-нибудь может остановить меня рвать волосы, я буду очень благодарен :)
возможно ли, что ваша служба прослушивает только интерфейс обратной связи?
на твоей амазонке
netstat -lanp|grep LISTEN|grep 7000
вы ожидаете получить что-то вроде:
tcp 0 0 0.0.0.0:7000 0.0.0.0:* LISTEN 2216/abc
скорее, чем
tcp 0 0 127.0.0.1:7000 0.0.0.0:* LISTEN 13798/abc