我正在尝试(我认为)对于自定义tcp服务器(一种sftp)来说是一件简单的事情:
允许流量通过aws 网络负载均衡器进入端口2222,然后路由到私有子网中的实例。
我使用应用程序负载均衡器做了同样的事情,效果很好。
但我无法使网络版本正常运行。
我想知道这是否可能?当我创建网络负载均衡器时,我确实收到警告,说我的公共子网中没有实例(这是真的......所有实例都在私有子网中)。但是,在创建具有相同子网的应用程序负载均衡器时,我很奇怪不会出现此错误。
我在这里错过了什么吗?
(我可以使用堡垒主机ping我的服务器没问题,所以我知道它正在运行。我还在所有相关的安全组中打开了端口2222.)
网络负载均衡器可以将流量引导到私有子网中的实例吗?
答案 0 :(得分:2)
NLB似乎会修改网络基础架构的行为,而不是像ALB或经典ELB那样“隐藏EC2实例”,因此需要不同的网络配置。
实例需要位于公有子网上,其默认路由指向Internet网关才能使用面向外部的NLB,因为与其他负载均衡器产品不同,它们不会将响应流量返回到“平衡器的内部IP“因为平衡器没有自己的面向实例的IP地址,实例看到流量直接来自客户端IP。
答案 1 :(得分:2)
所以每个人回答的都是绝对正确的。
解决方案是简单地更改与网络接口关联的安全组,该安全组又与我的私有子网相关联,如下所示:
2222 0.0.0.0/0
我以前曾把它作为
2222 10.0.0.0/16(其中10.0.0.0/16是我的vpc)
由于网络负载均衡器将客户端直接传递到后端基础架构,因此客户端可能来自我的网络,但这并不起作用。这个简单的修改可以立即解决问题。