运行 Mikrotik RouterOS,版本 6.48 或 7.9 无关紧要。
什么有效:
- 默认配置使 NAT 在 IP 数据包中保留源地址(即连接到服务器的客户端的公共 IP,链:输入 - 传入连接)。
- 有 50-50 次机会为掩码为 /24 的 1 个 LAN 网络从头配置路由器不会导致此 NAT 问题/错误/限制。
有什么问题:
对于传入连接
(即与具有开放端口/端口转发的服务器等节点建立):
扩大网络- 1 个 LAN 网络,网络掩码例如 /8 和范围 10.0.0.0/8
或
创建2 个或更多LAN - 例如 192.168.100.0/24 和 192.168.200.0/24
导致源 IP(即客户端公共 IP)被LAN网关 IP替换
,而 NAT 应该保持不变,但似乎 RouterOS 实际上没有跟上该规则。
在服务器 - 网络服务器 - 的日志中注意到 $SERVER['REMOTE_ADDR'] 是网关 IP 也不是访问网站的客户端 IP。
具有此问题的示例配置:https://pastebin.com/3Gmxe0SH
物理连接:ISP 路由器 [DMZ 到 Mikrotik] -> 间接 LAN 连接到 Mikrotik 路由器上的 WAN 端口 [NAT] -> LAN2/Server, LAN1/PC+WiFi
注意:直连服务器的ISP路由器正常工作(NAT,源地址保留)