我有一个 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?
获取 dyno 列表heroku ps -a <app>
命令。
您实际上可以通过 ssh 进入各个 dyno 实例heroku ps:exec -a <app> -d <dyno_instance> --ssh
.
获取单独的 dyno IPip
命令例如ip addr | grep "global eth0" | awk '{ print $2 }'
.
获取路由器IPcurl 'https://api.ipify.org'
. http://httpbin.org/ip http://httpbin.org/ip也不错。
你可以使用expect
通过运行 Heroku SSH 命令,等待提示,运行 IP 命令,注销,然后对每个 dyno 实例重复,以编程方式从每个 dyno 检索 IP。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)