我确信这是一个非常基本的问题,但我找不到答案。我已经看过了这个问题 https://stackoverflow.com/questions/13853936/cannot-assign-requested-address-bind2-errnoeaddrnotavail, 这个问题 https://stackoverflow.com/questions/14471885/bind-cannot-assign-requested-address, 这个问题 https://stackoverflow.com/questions/21768101/how-do-i-make-my-ruby-on-rails-app-respond-to-external-requests-visible-to-the, 这个问题 https://stackoverflow.com/questions/9282689/allow-public-connections-to-local-ruby-on-rails-development-server, and 这个问题 https://stackoverflow.com/questions/7640619/cannot-assign-requested-address-possible-causes但他们都没有帮助我找到答案。
我正在使用 Rails4.2
。我创建了一个非常简单的应用程序来测试我是否可以执行以下操作:
我想看看是否可以在我的计算机上启动我的 Rails 应用程序,然后从outside我的本地网络。例如:我想从我的手机(未连接到本地网络)发出请求并成功获得响应。
我假设我首先需要获取我的外部/可路由 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的端口都需要更高的权限。
它出错并显示以下内容:
无法分配请求的地址 - 绑定(2)
我试图理解为什么会出错。我不明白什么?我是不是少了一步?难道不能这样做吗?我的 ISP 是否让我无法绑定到该外部 IP?我需要在路由器上进行额外配置吗?
我意识到我可以使用heroku。这更多的是一个实验,看看这是否可能。提前致谢!