我正在尝试为自定义 tcp 服务器(一种 sftp)做(我认为是)一件简单的事情:
允许流量通过 aws 网络 负载均衡器进入端口 2222,然后路由到私有(private)子网中的实例。
我对 应用程序 负载均衡器做了同样的事情,它工作得很好。
但是我无法使 网络 版本正常工作。
我想知道这是否可能?当我创建网络负载平衡器时,我确实收到一条警告,说我的公共(public)子网中没有实例(这是真的……所有实例都在私有(private)子网中)。但奇怪的是,在创建具有相同子网的 应用程序 负载均衡器时,我没有收到此错误。
我在这里错过了什么吗?
(我可以使用堡垒主机 ping 我的服务器没有问题,所以我知道它正在运行。我还在所有相关的安全组中打开了端口 2222。)
网络 负载均衡器能否将流量定向到私有(private)子网中的实例?
最佳答案
NLB 似乎修改了网络基础设施的行为,而不是像 ALB 或经典 ELB 那样基于“隐藏的 EC2 实例”,因此需要不同的网络配置。
实例需要位于公共(public)子网上,其默认路由指向 Internet 网关,以便与面向外部的 NLB 一起工作,因为与其他负载均衡器产品不同,它们不会将响应流量返回到“均衡器的内部IP”,因为平衡器没有自己的面向实例的 IP 地址,并且实例将流量视为直接来自客户端 IP。
关于amazon-ec2 - 网络负载均衡器到私有(private)子网中的 TCP 服务器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47190850/