s g*_*s g 12 linux networking heroku heroku-cli
我有一个 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?
s g*_*s g 12
使用heroku ps -a <app>命令获取 dynos 列表。
您实际上可以使用 ssh 进入单个 dyno 实例heroku ps:exec -a <app> -d <dyno_instance> --ssh。
使用ip命令获取单个 dyno IP,例如ip addr | grep "global eth0" | awk '{ print $2 }'.
获取路由器IP curl 'https://api.ipify.org'。http://httpbin.org/ip也不错。
您可以expect通过运行 Heroku SSH 命令,等待提示,运行 IP 命令,注销,然后为每个 dyno 实例重复此操作,以编程方式从每个 dyno 检索 IP。
根据文档,Heroku Dynos 可以是来自 AWS 区域的任何 IP。为您的 Dynos 提供专用/静态 IP 是其企业产品的一部分。
但是,您可以通过添加附加组件(例如Fixie、Proximo或这些附加组件之一)来拥有专用/静态 IP
另外,您可以让 Dynos 向https://httpbin.org/ip发出 GET 请求,它将使用 Dynos 公共 IP 进行响应(更多想法请参见下面的评论部分)。
| 归档时间: |
|
| 查看次数: |
8134 次 |
| 最近记录: |