如何使用 public IP 为来自自身的连接设置 EC2?
How to set up EC2 with public IP for connections from itself?
我有一个 EC2 实例 (运行 kafka),它需要通过 public IP 访问自己,但我不想向全世界开放网络 ACL。
基本原理是,当与 kafka 代理建立连接时,代理会通告哪些 kafka 节点可用。由于 kafka 将在 EC2 内部和外部使用,唯一常见的选择是代理公布其 public IP。
我的设置:
- 一个实例,具有public IP(不是弹性IP)
- 一个vpc
- 一个安全组,允许从我的工作网络访问 kafka 端口
- 互联网网关
- 允许通过网关进行外部访问的路由
安全组如下:
Custom TCP Rule, proto=TCP, port=9092, src=<my office network>
Custom TCP Rule, prtot=TCP, port=2181, src=<my office network>
简而言之,如果我使用 localhost,则在实例中一切正常。
如果我使用 public IP.
,在实例外一切正常
我现在想要的是在具有 public IP 的实例内部使用 kafka。
如果我向全世界开放kafka端口:
Custom TCP Rule, proto=TCP, port=9092, src=0.0.0.0/0
Custom TCP Rule, prtot=TCP, port=2181, src=0.0.0.0/0
如预期的那样有效,但感觉不安全。
我如何设置网络 ACL 以接受来自本地 instance/subnet/vpv(哪个无关紧要)的入站流量而不打开太多?
好吧,这并不干净,但它有一个额外的优势,即无需为外部带宽付费。
我没有找到我预期的方法(通过安全组),但只需更新我的 ec2 实例上的 /etc/hosts,并实际使用主机名而不是 IP,一切都按预期工作.
例如,如果我为实例指定主机名 kafka.example.com,那么在 /etc/hosts 中添加以下行:
127.0.0.1 kafka.example.com
我可以在任何地方使用名称 kafka.example.com,即使它实际上指向不同的 IP,具体取决于调用的位置。
我有一个 EC2 实例 (运行 kafka),它需要通过 public IP 访问自己,但我不想向全世界开放网络 ACL。
基本原理是,当与 kafka 代理建立连接时,代理会通告哪些 kafka 节点可用。由于 kafka 将在 EC2 内部和外部使用,唯一常见的选择是代理公布其 public IP。
我的设置:
- 一个实例,具有public IP(不是弹性IP)
- 一个vpc
- 一个安全组,允许从我的工作网络访问 kafka 端口
- 互联网网关
- 允许通过网关进行外部访问的路由
安全组如下:
Custom TCP Rule, proto=TCP, port=9092, src=<my office network>
Custom TCP Rule, prtot=TCP, port=2181, src=<my office network>
简而言之,如果我使用 localhost,则在实例中一切正常。 如果我使用 public IP.
,在实例外一切正常我现在想要的是在具有 public IP 的实例内部使用 kafka。
如果我向全世界开放kafka端口:
Custom TCP Rule, proto=TCP, port=9092, src=0.0.0.0/0
Custom TCP Rule, prtot=TCP, port=2181, src=0.0.0.0/0
如预期的那样有效,但感觉不安全。
我如何设置网络 ACL 以接受来自本地 instance/subnet/vpv(哪个无关紧要)的入站流量而不打开太多?
好吧,这并不干净,但它有一个额外的优势,即无需为外部带宽付费。
我没有找到我预期的方法(通过安全组),但只需更新我的 ec2 实例上的 /etc/hosts,并实际使用主机名而不是 IP,一切都按预期工作.
例如,如果我为实例指定主机名 kafka.example.com,那么在 /etc/hosts 中添加以下行:
127.0.0.1 kafka.example.com
我可以在任何地方使用名称 kafka.example.com,即使它实际上指向不同的 IP,具体取决于调用的位置。