Порт, кажется, открыт, но соединение, которому отказывают

Я пробую к открытому порту 3000 на Ubuntu 12.04, вызываю, у меня есть веб-сервер, слушающий там. Я немного вне моей зоны комфорта здесь и провел много часов, пытаясь решить проблему без успеха.

Порт, кажется, открыт в брандмауэре:

$> sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
...
3000/tcp                   ALLOW       Anywhere
3000/tcp                   ALLOW       Anywhere (v6)

Сервер слушает хорошо на том порте:

$> netstat -an | grep "LISTEN "
...
tcp        0      0 127.0.0.1:3000          0.0.0.0:*               LISTEN     
...

И я могу даже wget хорошо индексная страница:

$> wget localhost:3000
Connecting to localhost (localhost)|127.0.0.1|:3000... connected.
HTTP request sent, awaiting response... 200 OK

И полученный файл содержит то, что я ожидаю ("привет мир" :).

Однако при попытке от другого компьютера, или если я wget mydomain.com:3000 Я добираюсь "connection refused", и nmap говорит мне, что порт не открыт:

$> nmap -A -T4 mydomain.com
Host is up (0.00032s latency).
...
Not shown: 999 closed ports
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 5.9p1 Debian 5ubuntu1 (protocol 2.0)
...
Service Info: OS: Linux

Какая-либо идея, что я должен попробовать затем???

Править

Вот то, что дает traceroute:

$> traceroute mydomain.com
traceroute to mydomain.com (176.31.x.x), 30 hops max, 60 byte packets
 1  mydomain.com (176.31.x.x)  0.034 ms  0.013 ms  0.010 ms
21
задан 21 July 2012 в 00:22

3 ответа

Есть ли вероятность, что вы используете AWS или другие облачные сервисы? В этом случае порт должен быть открыт на уровне конфигурации Inctance (OS) или после. В частности, в AWS вы должны искать «Группы безопасности», где вы должны открыть доступ к порту 3000

0
ответ дан 21 July 2012 в 00:22

Если ваш сервер прослушивает только интерфейс localhost, вы не сможете получить к нему доступ с удаленного компьютера. Похоже, это ваша основная проблема, поскольку в выводе netstat указан только 127.0.0.1:3000.

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

0
ответ дан 21 July 2012 в 00:22

У меня недавно была эта проблема с HTTPS-сервером nodejs, и ее решением было не использовать «localhost», «127.0.0.1» или даже доменное имя. Он должен был использовать «0.0.0.0»

. Я считаю, что это действует как подстановочный знак, теперь допускает публичное разрешение через доменное имя, а также работает с «localhost»

Редактировать: Вот ссылка на страницу с ошибкой сервера в разделе 0.0.0.0: https://serverfault.com/questions/78048/whats-the-difference-between-ip-address-0-0-0-0-and-127 -0-0-1

0
ответ дан 21 July 2012 в 00:22

Другие вопросы по тегам:

Похожие вопросы: