首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Aws cli内网ip到公网ip的映射

Aws cli内网ip到公网ip的映射
EN

Stack Overflow用户
提问于 2016-09-16 07:45:26
回答 2查看 617关注 0票数 0

我有一个Amazon实例。此实例有两个接口。每个接口有两个弹性ips。因此,该实例总共有4个弹性ips。

我想知道如何获得关联的内网ip和关联的公网ip。

例如,假设我的实例具有以下公有-私有ips:

代码语言:javascript
复制
80.0.0.0 - 10.0.0.0
80.0.0.1 - 10.0.0.1
80.0.0.2 - 10.0.0.2
80.0.0.3 - 10.0.0.3

我想知道有没有办法这样做

代码语言:javascript
复制
aws ip-mapping 80.0.0.0

其中返回10.0.0.0

或者,类似这样的代码:

代码语言:javascript
复制
curl http://169.254.169.254/latest/meta-data/network/interfaces/ip-mapping/80.0.0.0/

在私有网络中使用弹性公网ip查找amazon实例的内网ip与公网ip或公网ip与内网ip的映射关系的最佳方式是什么?

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2016-09-16 08:29:14

是的,你可以使用下面的curl来实现你的用例。

代码语言:javascript
复制
curl --interface 80.0.0.0 ifconfig.me
票数 0
EN

Stack Overflow用户

发布于 2016-09-16 23:51:28

赋予ec2描述ec2实例的权限,确保安装了boto3,然后该程序应该能够在给定公共实例的情况下识别私有实例,或者在给定私有实例的情况下识别公共实例。

没有保修,没有经过广泛的测试

代码语言:javascript
复制
#!/usr/bin/python

import sys

(theother) = (sys.argv[1])
import boto3

e = boto3.client('ec2').describe_instances()
possible = {}

for r in e['Reservations']:
  for i in r['Instances']:
    if 'PrivateIpAddress' in i:
     p = i['PrivateIpAddress']
     if 'NetworkInterfaces' in i:
        for n in i['NetworkInterfaces']:
          if 'Association' in n and 'PublicIp' in n['Association']:
            u = n['Association']['PublicIp']
            if u == theother or p == theother:
              print "found"
              possible['id'] = i['InstanceId']
              possible['public'] = u
              possible['private'] = p
              break

print possible

要运行该程序,给它一个虚线四元组的命令行arg,该四元组表示您想要为其查找匹配的ip - public或private

或者,要在AWS控制台GUI中查找此信息,请转到弹性IP的VPC页面。该表列出了公共可见的IP及其关联的私有地址

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39521902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档