如何访问在AWS EC2 Ubuntu的localhost上运行的解析服务器?

时间:2016-03-29 14:52:53

标签: amazon-web-services amazon-ec2 parse-server

我有一个运行Ubuntu的AWS EC2实例。
我有一个Parse服务器,在localhost上运行,端口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可以从其内部网络外部访问并访问Parse服务器?

3 个答案:

答案 0 :(得分:2)

公共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,localhost环回,是127.0.0.1。 eth0,外部接口,是172.19.240.213。请注意,它是172.16.0.0/12块中的私有IP,不会被路由到Internet。 AWS应用另一层NAT,将最终的公共IP地址映射到您的EC2实例。

一般情况下,您应该遵循Vorsprung的建议并简单地绑定到0.0.0.0。如果您想直接绑定到eth0,可以像这样查找地址。

答案 1 :(得分:1)

两件事

首先,您不会说服务器正在运行但是要更改它以便它正在侦听所有地址。通常这是通过给出0.0.0.0作为绑定地址来完成的。执行此操作并重新启动服务器进程后,使用服务器上的shell中的ss命令进行检查:

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

如果&#34;本地地址:端口&#34;由ss给出的是127.0.0.1然后它只是在localhost上监听而且无法访问

接下来,使用浏览器中服务器shell上hostname给出的地址

答案 2 :(得分:0)

我通过使用EC2实例的公共IP来解决它,并且我能够访问在其上运行的Parse服务器。