我有一台 Mac 服务器,但我的问题早已离开了 GUI 的领域。我最后的希望是一个unix论坛。
我有一个带有两个 WAN 端口的思科路由器。 Mac 使用 postfix 2.8.3。在本例中,我已正确配置端口 25 的端口转发。但是,当我尝试使用端口 25 打开从外部主机到我的 WAN 端口的 IP 地址的 telnet 会话时,我仅在 WAN1 上收到后缀回复。 WAN2 给我一个“无法连接到远程主机:连接超时”的消息。然而,如果我运行 WireShark,我可以看到路由器转发请求,但 postfix 似乎没有“接收”。
我查看了 main.cf,没有任何内容表明 postfix 应该挑剔它想要使用的 WAN。 inet_protocols 设置为 all,我什至尝试将每个 WAN 端口的静态 IP 地址添加到我的网络变量中。
但我似乎无法让它工作 - 有没有人有任何我可以下一步看的提示?
谢谢
答案1
这里有几件事需要检查:
- 在 Mac 上,运行“tcpdump port 25”。这会将进出端口 25 的所有内容打印到标准输出。现在远程登录到端口 25 上的两个 IP。tcpdump 是否打印两个 IP 的任何内容,还是仅打印第一个 IP?
- 在 Mac 上,运行“postconf inet_interfaces”。如果您看到“inet_interfaces = all”,则 postfix 应该正在侦听所有接口。
- 在 Mac 上,运行“netstat -tapn|grep 25”。这应该返回 postfix 正在侦听的接口。如果您看到类似“0.0.0.0:25”的内容,则表明 postfix 正在监听所有接口。
如果后两个测试如我所说,那么问题出在路由器级别。另请注意,我在 GNU/Linux 主机上执行了测试,因此您的结果可能略有不同。
答案2
您的路由器确实支持使用两个 WAN 链路进行负载平衡。正如我所看到的,现在的情况是,您尚未在路由器上配置任何负载平衡,您已连接这两个 WAN 链路,并且 SMTP 端口转发到 LAN IP 之一(您的 mac),并且路由器只有一个默认网关互联网,即 WAN1。因此,即使数据包通过 WAN2 进入,也会通过 WAN1 发送到客户端,客户端会看到它就像向 A 打招呼并从 B 收到回复一样,出于明显的原因,它会忽略该回复,从而导致超时。恕我直言,单独启用负载平衡应该有助于解决您的问题。