获取 Heroku dynos 的 IP
Get IP of Heroku dynos
我有一个 Heroku 应用程序对外部服务进行了一些 API 调用。存在一些问题,服务想知道哪些 IP 正在调用。
机器上不存在许多基本工具,如 ifconfig
、traceroute
、netstat
等。看起来它们是 运行 Ubuntu 14.04.5.
的一个非常简单的版本
我能够使用 heroku ps:exec -a <myapp>
通过 SSH 连接到我的应用程序并使用 ip addr
但存在一些问题:
1) 看来这只允许我通过 SSH 进入 web.1 dyno(我正在通过 rest.1、rest.2 等进行 API 调用)
2) 这些调用通过 Heroku 端的路由器。
如何获取所有 dyno 实例的 IP and/or 路由器?
根据 docs, Heroku Dynos can be any IP from an AWS Region. Having a dedicated/static IP for your Dynos is part of their enterprise offering.
但是,您可以通过添加附加组件(例如 Fixie, Proximo or one of these add-ons)获得 dedicated/static IP
此外,您可以让 Dynos 向 https://httpbin.org/ip 发出 GET 请求,它将使用 Dynos public IP 进行响应(更多想法在下面的评论部分)。
使用heroku ps -a <app>
命令获取dynos列表。
您实际上可以使用 heroku ps:exec -a <app> -d <dyno_instance> --ssh
.
ssh 进入单独的 dyno 实例
使用 ip
命令获取个人测功机 IP,例如ip addr | grep "global eth0" | awk '{ print }'
.
通过curl 'https://api.ipify.org'
获取路由器IP。 http://httpbin.org/ip也不错
您可以使用 expect
通过 运行 Heroku SSH 命令以编程方式从每个 dyno 检索 IP,等待提示,运行 IP 命令,记录出来,然后为每个测功机实例重复。
我有一个 Heroku 应用程序对外部服务进行了一些 API 调用。存在一些问题,服务想知道哪些 IP 正在调用。
机器上不存在许多基本工具,如 ifconfig
、traceroute
、netstat
等。看起来它们是 运行 Ubuntu 14.04.5.
我能够使用 heroku ps:exec -a <myapp>
通过 SSH 连接到我的应用程序并使用 ip addr
但存在一些问题:
1) 看来这只允许我通过 SSH 进入 web.1 dyno(我正在通过 rest.1、rest.2 等进行 API 调用) 2) 这些调用通过 Heroku 端的路由器。
如何获取所有 dyno 实例的 IP and/or 路由器?
根据 docs, Heroku Dynos can be any IP from an AWS Region. Having a dedicated/static IP for your Dynos is part of their enterprise offering.
但是,您可以通过添加附加组件(例如 Fixie, Proximo or one of these add-ons)获得 dedicated/static IP
此外,您可以让 Dynos 向 https://httpbin.org/ip 发出 GET 请求,它将使用 Dynos public IP 进行响应(更多想法在下面的评论部分)。
使用heroku ps -a <app>
命令获取dynos列表。
您实际上可以使用 heroku ps:exec -a <app> -d <dyno_instance> --ssh
.
使用 ip
命令获取个人测功机 IP,例如ip addr | grep "global eth0" | awk '{ print }'
.
通过curl 'https://api.ipify.org'
获取路由器IP。 http://httpbin.org/ip也不错
您可以使用 expect
通过 运行 Heroku SSH 命令以编程方式从每个 dyno 检索 IP,等待提示,运行 IP 命令,记录出来,然后为每个测功机实例重复。