Как получить доступ к серверу Parse, работающему на локальном хосте AWS EC2 Ubuntu?

У меня есть экземпляр AWS EC2 под управлением Ubuntu.
У меня есть сервер Parse, работающий на локальном хосте, порт 1337. Я включил этот порт в группе безопасности экземпляра.

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

$ wget http://<Public IP>:1337/parse
Connecting to <Public IP>:1337... failed: Connection refused.
$ wget http://<Private IP>:1337/parse
Connecting to <Private IP>:1337... failed: Connection refused.
$ wget http://localhost:1337/parse
Resolving localhost (localhost)... 127.0.0.1
Connecting to localhost (localhost)|127.0.0.1|:1337... failed: Connection refused.
$ wget http://<Public DNS>:1337/parse
Resolving <Public DNS> (<Public DNS>)... <Private IP>
Connecting to <Public DNS> (<Public DNS>)|<Private IP>|:1337... failed: Connection refused.

Как вы можете видеть выше, я проверил общедоступный IP-адрес, общедоступный DNS и частный IP-адрес.
Он всегда говорил, что это не удалось, потому что сервер connection refused и по какой-то причине даже localhost отказывается.

Как я могу сделать localhost доступным из-за пределов внутренней сети и получить доступ к серверу Parse?


person Ido Naveh    schedule 29.03.2016    source источник
comment
Можете ли вы проверить, что ваш сервер прослушивает порт 1337 с помощью sudo netstat -plnt?   -  person ataylor    schedule 04.04.2016
comment
Он показывает только sshd и mongod, хотя в первом терминале показывает parse-server running on http://localhost:1337/parse.   -  person Ido Naveh    schedule 04.04.2016


Ответы (3)


Общедоступный IP-адрес обычно не совпадает с частным IP-адресом, который внешний интерфейс использует локально. Чтобы увидеть частный IP-адрес, вы можете запустить:

$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000
    link/ether 0a:8c:dd:df:8d:ff brd ff:ff:ff:ff:ff:ff
    inet 172.19.240.213/24 brd 172.19.240.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::88c:ddff:fedf:8cff/64 scope link
       valid_lft forever preferred_lft forever

Это показывает ваши интерфейсы: lo, локальная петля, 127.0.0.1. eth0, внешний интерфейс, 172.19.240.213. Обратите внимание, что это частный IP-адрес в блоке 172.16.0.0/12, который не маршрутизируется в Интернет. AWS применяет еще один уровень NAT, который сопоставляет конечный общедоступный IP-адрес с вашим экземпляром EC2.

В общем, вы должны следовать совету Vorsprung и просто привязываться к 0.0.0.0. Если вы хотите напрямую привязаться к eth0, вы можете найти адрес, подобный этому.

person ataylor    schedule 29.03.2016
comment
Я обновил весь вопрос. Пожалуйста, взгляните. - person Ido Naveh; 04.04.2016

Две вещи

Во-первых, вы не говорите, какой сервер работает, а меняете его так, чтобы он прослушивал все адреса. Обычно это делается путем указания 0.0.0.0 в качестве адреса привязки. После этого и перезапуска серверного процесса проверьте командой ss из оболочки на сервере:

$ ss -nl|grep 8082
LISTEN     0      100                      :::4040                    :::*     

если «Локальный адрес: порт», заданный ss, равен 127.0.0.1, то он прослушивается только на локальном хосте и недоступен

Затем используйте адрес, указанный hostname в оболочке сервера в вашем браузере.

person Vorsprung    schedule 29.03.2016
comment
Я обновил весь вопрос. Пожалуйста, взгляните. - person Ido Naveh; 04.04.2016
comment
вы обновили вопрос, но ответ остался прежним! если ваш сервер Parse привязан к адресу 127.0.0.1, то это адрес локального хоста. Из оболочки на тот же сервер это должно работать. Из других мест его не будет. Согласно документации для Parse, по умолчанию он должен быть привязан к 0.0.0.0. - person Vorsprung; 05.04.2016
comment
Проблема в том, что он не подключается - person Ido Naveh; 05.04.2016
comment
это невозможно подключить, потому что вы не можете подключиться к адресу localhost из-за пределов сервера - person Vorsprung; 05.04.2016

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

person Ido Naveh    schedule 05.04.2016