我想在运行以下程序的路由器上将 HTTP 流量从 1.1.66.166:80 端口转发到 LAN-ip 10.13.37.10:80:RouterOS 6.40
配置:
/ip address print
Flags: X - disabled, I - invalid, D - dynamic
# ADDRESS NETWORK INTERFACE
0 10.13.37.62/26 10.13.37.0 ether2
1 1.1.66.166/27 1.1.66.160 ether1
/ip firewall nat print
Flags: X - disabled, I - invalid, D - dynamic
0 chain=dstnat action=dst-nat to-addresses=10.13.37.10 protocol=tcp dst-address=1.1.66.166 dst-port=80 log=yes log-prefix=""
1 chain=srcnat action=masquerade out-interface=ether1 log=no
但没有流量到达内部主机。我是不是漏掉了什么?
我已经验证我可以10.13.37.10:80
从路由器访问。
我确实得到了规则已被触发的记录:
firewall,info dstnat: in:ether1 out:(none), src-mac xx:xx:d0:xx:3c:00, proto TCP (SYN), xx.xx.174.107:22880->1.1.66.166:80, len 60
答案1
希望,这只是您的防火墙规则的一部分:)您应该过滤所有传入的,除了已建立的和相关的!
由于端口转发是FORWARD,我是否应该允许将传入的数据包转发到10.13.37.10 tcp 端口 80?
chain=forward action=accept protocol=tcp in-interface=ether1 dst-port=80 log=yes log-prefix="---FORWARD-TO-80--- "
这不存在安全风险,因为您允许转发 80/tcp 的传入连接。您使用 dstnat 规则管理最终目的地。
请注意,您应该已经建立并相关启用:
chain=forward action=accept connection-state=established
chain=forward action=accept connection-state=related
因为局域网中的 Web 服务器将会应答,并且其应答应该被允许到达远程客户端。