我确定这是一个非常基本的问题,但我找不到答案。我已经查看了this question,this question,this question,this question和this question,但这些都没有帮助我找到答案。
我正在使用Rails 4.2
。我创建了一个非常简单的应用程序来测试我是否可以执行以下操作:
我想知道是否可以在我的计算机上启动我的rails应用程序,然后从本地网络的外部访问该应用程序。例如:从我的手机(未连接到本地网络)我想发出请求并成功获得回复。
我认为我首先需要获取外部/可路由的IP地址。我意识到我的ISP为我的路由器提供的IP地址不是静态的,但仅仅是为了演示目的,我想知道我是否可以成功地发出一个请求。
我去谷歌并输入"什么是我的IP"它用我的外部IP地址返回(让我假装我的外部IP地址是:11.111.111.111
)。
在我的rails应用程序中:然后我执行了以下命令:
rvmsudo rails s -p 80 -b 11.111.111.111
我想绑定到外部ip地址,我想在端口80上侦听。我执行rvmsudo因为据我所知,1000以下的所有端口都需要更高的权限。
出错并说出以下内容:
无法分配请求的地址 - bind(2)
我试图理解为什么这是错误的。我不明白的是什么?我错过了一步吗?是不是可以这样做?我的ISP是否制作它以便我无法绑定到外部IP?我是否需要在路由器上进行其他配置?
我意识到我可以使用heroku。这更像是一个实验,看看这是否可能。提前谢谢!
答案 0 :(得分:0)
您无法将套接字绑定到外部IP。您的ISP将此IP分配给您的调制解调器(或用于连接到Internet的任何设备)。您只能绑定到计算机的接口。
有多种解决方案: