我在跑FreshTomato 固件 2020.2 K26ARM USB AIO-64K但这个问题一般是关于端口转发的“高级用例”。
是否可以设置路由器策略,以便将进入 WAN 上特定端口的流量转发到多个设备(IP 地址)之一(在我的情况下是两个),具体取决于哪个设备当前连接到路由器(未关闭)?
举一个具体的例子,假设我有一个PS3(192.168.1。3)和PS4(192.168.1。4)。PSN 在端口 3478-3480 上发送流量。我希望在这些端口上建立入站连接,因此我想设置一条规则:
- 如果 PS3 已连接并且在 [WAN_IP] 上接收到流量:3478,将数据包路由到 192.168.1。3:3478
- 如果 PS4 已连接...,则将数据包路由到 192.168.1。4:3478
- 对于端口 3479、3480 以及我定义的任意端口集也是如此
- 如果 PS3 和 PS4 都已连接,则倒退关于将其路由到 PS4
我很难相信这种路由逻辑无法实现。
是的,我知道 WAN 端口到 LAN 设备端口的传入连接之间通常必须存在多对一映射,而我想要一种多对多映射,它依赖于检查某些条件并使用后备路由进行相应的路由。可以将其视为路由的“switch 语句”。
我只是在寻找一种方法来切实解决我的具体问题使用路由(不一定非要进行端口转发)。
答案1
这就是负载平衡器(HAproxy、nginx)或 Linux 虚拟服务器所做的。
您可以为服务和健康检查配置多个目标(应用程序级别检查或仅打开 TCP 连接)。根据当前可访问的目标,传入连接将转发到一个或多个目标。