Get IP of Heroku dynos



我有一个Heroku应用程序,可以对外部服务进行一些API调用。有一些问题,该服务想知道IPS正在打电话。

ifconfigtraceroutenetstat等许多基本工具都不存在。看来他们正在运行Ubuntu的非常准确的版本14.04.5。

我能够使用heroku ps:exec -a <myapp>将SSH用于我的应用程序并使用ip addr,但是有一些问题:

1)看来,这仅允许我进入Web.1 dyno(我正在通过REST.1,REST.2等进行API调用)2)这些电话通过Heroku一侧的路由器。

如何获得所有DYNO实例和/或路由器的IP?

使用heroku ps -a <app>命令获取Dynos的列表。

您实际上可以使用heroku ps:exec -a <app> -d <dyno_instance> --ssh进行单个Dyno实例。

使用ip命令获得单个Dyno IP,例如ip addr | grep "global eth0" | awk '{ print $2 }'

使用curl 'https://api.ipify.org'获取路由器IP。http://httpbin.org/ip也很好。

您可以使用expect通过运行HEROKU SSH命令,等待提示,运行IP命令,登录,然后重复每个Dyno实例。/div>

根据文档,Heroku dynos可以是AWS地区的任何IP。为您的dynos拥有专用/静态IP是其企业提供的一部分。

但是,您可以通过添加一个附加组件(例如Fixie,Proximo或其中一个附加组件)

来具有专用/静态IP

此外,您可以让Dynos向https://httpbin.org/ip提出GET请求,并且它将以Dynos public ip响应(下面的评论部分中的更多想法)。

最新更新