AWS - 使用 EIP 访问私有子网中的实例

2024-04-23

我想使用 EIP 访问我的私有子网中的一些实例。有办法吗?我知道这没有多大意义,但让我详细解释一下。

我有一个带有 2 个子网的 VPC。

  1. 192.168.0.0/24(公共子网)已附加 EIP

  2. 192.168.1.0/24(私有子网)

它们之间有一个 NAT 实例,以允许私有实例对互联网进行出站访问。正如所提到的,一切正常here http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Scenario2.html.

但现在,我暂时需要使用 EIP 直接从互联网寻址私有子网上的实例。是否可以通过单独为该特定实例设置新的路由表来实现这一点?或者其他什么? 以下是限制:

  1. 私有子网上的任何实例都不能出现任何停机时间

  2. 因此,不言而喻,我无法创建新的子网并将这些实例移至那里。

它应该像 -> Attach 一样简单。使用 。消除。 我现在唯一的其他方法是在 iptables 上从公共子网上的实例(具有 EIP)到私有子网上的任何实例进行某种端口转发......但这看起来很混乱。

还有其他方法吗?


当然,私有子网中的内容位于私有子网中,因为它不应该从 Internet 访问。 :)

但是......我相信你有你的理由,所以这里是:

首先,不,您不能以简单的附加 → 使用 → 删除的方式执行此操作,因为每个子网都有一个默认路由,并且要么指向igw对象(公有子网)或 NAT 实例(私有子网)。如果您将弹性 IP 绑定到私有子网中的计算机,则入站流量将到达该实例,但出站回复流量将通过 NAT 实例路由回,这将丢弃或破坏它,因为您无法通过 NAT 进行非对称路由,这就是这里会发生的情况。

如果您的服务是 TCP 服务(http、远程桌面、yadda yadda),那么这里有一个短期黑客技术,它可以很好地工作,避免 iptables 的麻烦,并且只公开您需要的特定服务:

在公共子网中使用 ubuntu 12.04 LTS 启动一个新的微型实例,并使用 EIP 和适当的安全组来允许入站 Internet 流量到达所需端口。允许您自己 ssh 访问新实例。允许从该机器访问内部机器。然后:

$ sudo apt-get update
$ sudo apt-get upgrade 
$ sudo apt-get install redir

假设您要将传入端口 80 流量发送到私有实例上的端口 80:

$ sudo redir --lport=80 --cport=80 --caddr=[private instance ip] --syslog &

完毕。您将在系统日志中记录每次连接和断开连接的端口号和传输的字节数。缺点是,如果您的私有主机正在查看连接计算机的 IP,它将始终看到私有网络实例的内部 IP。

如果您绑定到低于 1024 的端口,则只需使用 sudo 运行它,因为只有 root 可以绑定到较低的端口号。要阻止它,找到 pid 并杀死它,或者sudo killall redir.

潇洒的小redir实用程序在用户空间发挥其魔力,使其比 iptables 更简单(恕我直言)。它在指定的端口上设置一个监听套接字--lport港口。对于每个入站连接,它会分叉自身,建立到--caddr on --cport并将两个数据流连接在一起。它不知道流内部发生了什么,所以它应该适用于任何 TCP。这也意味着尽管使用 Micro,您应该能够传递相当多的流量。

完成后,扔掉微实例,您的网络就会恢复正常。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWS - 使用 EIP 访问私有子网中的实例 的相关文章

随机推荐

  • Python如何将输入字符串的结果相乘[重复]

    这个问题在这里已经有答案了 我是一名正在尝试学习 Python 的编程初学者 我正在尝试完成以下练习 编写一个程序来提示用户输入小时数和每小时费率 计算总工资 这是我想出的 hours input Enter number of hours
  • Cosmos DB 中的向后分页

    我正在尝试在我的 Vue 前端上使用 c 和 cosmos 实现一个简单的分页系统 但我不确定当用户想要返回时实现分页的最佳方法 为了前进 我使用延续令牌 所以 Cosmos 知道我已经到了哪里 但我不太确定向后工作的最佳方法 或者如果用户
  • yii2 作曲家更新致命错误

    当我更新我的作曲家以添加yii2 solr扩展我的项目时 我遇到如下错误 The yiisoft yii2 composer plugin requires composer plugin api 1 0 0 this WILL break
  • 如何配置两个 JSON 序列化器并根据路由选择正确的一个

    我有一个使用 Net Framework 4 7 的 ASP NET Core Web API 项目 我正在升级到 Net Core 3 1 我升级的原因之一是使用新的 System Text Json 序列化程序 目前 我有一些基于路线的
  • Grails 2.4.3:使用 REST 服务

    如何在 Grails 2 4 3 中使用 RESTful Web 服务 我还需要使用基本身份验证 你可能认为这个问题已经有了一个很好的答案 但我真的很难找到一个 许多答案都向我指出了 Grails Rest 插件的方向 我已经尝试过但无法为
  • 指示 getUserMedia 使用最佳可用相机分辨率

    我正在使用 getUserMedia 函数从网络摄像头录制视频 一切工作正常 除了当我刚刚指定 video true 约束时它仅以 640x480 分辨率录制 如果我设置如下约束 我现在可以在笔记本电脑上获得更好的录音质量 var medi
  • Spring MVC 如何处理多用户

    我使用 Spring 已有 6 个多月了 我无法理解与以下场景相关的底层机制 我有一个 Spring Web 应用程序 现在我在控制器中自动连接了模型 根据 url 匹配 它调用相应的方法 我所有的方法都是单例的 现在 当两个用户同时打开应
  • ActionBarSherlock:getSupportMenuInflator() 未定义

    我在用着动作栏夏洛克并尝试使用以下方法来扩充我的 XML 菜单getSupportMenuInflator 但它给出了一个错误 the method getSupportMenuInflator is undefined for the t
  • 如何创建对象并将其添加到向量中?

    我有一个 C 向量 我希望向量能够容纳可变数量的对象 Visual Studio 2012 给我一个错误 Error type name is not allowed 从这段 C 代码中可以看出 include
  • zend框架FlashMessenger问题

    我正在使用 FlashMessenger 助手来设置消息 但无法使用 getMessages 方法检索消息 它返回 null 这是我的示例代码
  • 从mapbox api获取建筑信息

    有没有办法从 Mapbox API 获取建筑信息 几何形状 高度等 我从这个例子开始 https www mapbox com mapbox gl js example 3d buildings https www mapbox com m
  • 没有历史记录的 Git 存储库

    是否可以拥有一个没有历史记录的 Git 存储库 例如 我工作的地方有一个本地 Git 存储库 我想将最新版本推送到生产服务器 生产服务器上不应存储任何历史记录 我怎样才能做到这一点 你可以看看命令是否git archive http git
  • Jenkins MultiJob - 发送包含内部作业数据的结果电子邮件

    我有一个包含 3 个内部作业的多作业项目 需要按以下顺序执行 Master MultiJob Project Job Phase 1 gt JOB A Phase 2 gt JOB B Phase 2 gt JOB C 当作业 C 结束时
  • Symfony2 覆盖 User.orm.xml

    我需要覆盖这个 Symfony vendor friendsofsymfony user bundle FOS UserBundle Resources config doctrine model User orm xml 文件
  • 更改响应背景颜色的文本颜色

    考虑这个例子 codepen https codepen io anon pen EdwKZb infobox width 110mm height 65mm background image url https i pinimg com
  • 如何在 React 的 recompose 生命周期方法中 setState?

    我在我的 React 项目中使用 recomposehttps github com acdlite recompose https github com acdlite recompose 这是一个很棒的图书馆 我正在使用compose实
  • 使用 XSD.exe 从多个 XSD 架构生成 C# 类

    我有 2 个 XSD 文件 假设一个 XSD 文件 ABC xsd 包含属于 XML 一部分的元素 另一个 XSD 文件假设 XYZ xsd 包含这些元素的定义 现在 在 ABC XSD 保存元素 模式标记以及其他命名空间中 我们也提到了模
  • Laravel 5:违反完整性约束:1062 - 多对多

    我需要以下方面的一些建议 我有两次迁移 就像这样 Schema create plates function Blueprint table table gt increments id table gt integer serial nu
  • 按日期比较对象(实现 Comparator)

    我有一个 java People 对象 public class People String lastname String firstname String gender String datebirth String fcolor pu
  • AWS - 使用 EIP 访问私有子网中的实例

    我想使用 EIP 访问我的私有子网中的一些实例 有办法吗 我知道这没有多大意义 但让我详细解释一下 我有一个带有 2 个子网的 VPC 192 168 0 0 24 公共子网 已附加 EIP 192 168 1 0 24 私有子网 它们之间