![如何在 OpenWrt 上配置重定向?](https://linux22.com/image/147184/%E5%A6%82%E4%BD%95%E5%9C%A8%20OpenWrt%20%E4%B8%8A%E9%85%8D%E7%BD%AE%E9%87%8D%E5%AE%9A%E5%90%91%EF%BC%9F.png)
以下是 uci 配置及其生成的规则:
uci add firewall redirect
uci set firewall.@redirect[-1].target=DNAT
uci set firewall.@redirect[-1].proto=tcp
uci set firewall.@redirect[-1].src=wan
uci set firewall.@redirect[-1].src_dport=80
uci set firewall.@redirect[-1].dest=lan
uci set firewall.@redirect[-1].dest_port=80
uci set firewall.@redirect[-1].dest_ip=10.0.0.10
uci commit firewall
<reboot>
iptables -t nat -A zone_wan_prerouting -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.0.10:80
iptables -t nat -D zone_lan_prerouting -p tcp -s 10.0.0.0/255.0.0.0 -d <external_ip_of_router> -m tcp --dport 80 -j DNAT --to-destination 10.0.0.10:80
iptables -t nat -A zone_lan_prerouting -p tcp -s 10.0.0.0/255.0.0.0 -d <external_ip_of_router> -m tcp --dport 80 -j DNAT --to-destination 10.0.0.10:80
iptables -t nat -D zone_lan_postrouting -p tcp -s 10.0.0.0/255.0.0.0 -d 10.0.0.10 -m tcp --dport 80 -j SNAT --to-source 10.0.0.1
iptables -t nat -A zone_lan_postrouting -p tcp -s 10.0.0.0/255.0.0.0 -d 10.0.0.10 -m tcp --dport 80 -j SNAT --to-source 10.0.0.1
但这不起作用。
(为了获取 iptables 命令,我在 configfw3 -4 print
之前和之后使用uci
,然后使用diff
。)
仅当我手动(首先清除 uci 配置)输入上面列表中的规则 #1 和 #5(并-s 10.0.0.0/255.0.0.0
从规则 #5 中删除)时,重定向才开始工作。
但以下 uci 配置有效:
uci add firewall redirect
uci set firewall.@redirect[-1].target=DNAT
uci set firewall.@redirect[-1].proto=tcp
uci set firewall.@redirect[-1].src=wan
uci set firewall.@redirect[-1].src_dport=5000
uci set firewall.@redirect[-1].dest=lan
uci set firewall.@redirect[-1].dest_port=22
uci set firewall.@redirect[-1].dest_ip=10.0.0.2
uci commit firewall
这该如何解释呢?