主路由拨号_openwrt做旁路由_ipv4端口映射的设置
转载注明来源: 本文链接 来自osnosn的博客,写于 2021-01-08.
主路由,不限定类型。能拨号上网,有端口映射功能即可。
方法1,这个办法好
- openwrt(旁路由) 只有一个LAN接口,没有WAN接口。在"防火墙-区域设置"->"一般设置"中,去掉"NAT"选项的勾,设置"转发"->允许。
("NAT" 即 "IP伪装")- 旁路由,在内网,用的是用网段的IP,直接允许转发即可。旁路由的负荷要小的多。没必要nat什么的。
- 直接在主路由上设置ipv4的端口映射,映射到目标机器。旁路由上面,无需任何映射的设置。
方法2,这个办法好
- openwrt(旁路由) 有一个LAN接口,还有WAN接口。
- openwrt(旁路由) 在"防火墙"->"自定义规则"中。加入以下三条规则。
(openwrt-18.06, openwrt-21.02, 都可用)
前两条为,lan-lan 转发不做 NAT。第三条为,lan-lan 允许转发。
iptables -t nat -A postrouting_lan_rule -o br-lan -j ACCEPT
iptables -t nat -A prerouting_lan_rule -i br-lan -j ACCEPT #其实这句没用处,可删除
iptables -A forwarding_lan_rule -o br-lan -j ACCEPT
- 直接在主路由上设置ipv4的端口映射,映射到目标机器。旁路由上面,无需任何映射的设置。
方法3,不建议用
两层映射。主路由-映射--->旁路由-映射--->内网目标机器
- openwrt(旁路由) 只有一个LAN接口,没有WAN接口。在防火墙基本规则中,勾上"NAT"选项,设置"转发"->拒绝。
- 主路由上设置ipv4的端口映射,映射到旁路由(openwrt)。
- openwrt(旁路由) 上也设置ipv4端口映射,映射到目标机器。
因为 openwrt(旁路由)上没有WAN口,ipv4端口映射添加后,自动会设为一个LAN,一个WAN。
所以,需要再次编辑这条映射规则,把两个区域都改为LAN。 - openwrt(旁路由) 上自定义防火墙规则中,加入
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
- 或者用指定了IP和端口的两条规则,替换掉上面这条。并且把"转发"设置为"允许"
iptables -t nat -I POSTROUTING -s 192.168.2.100 -p tcp -m tcp --sport 8888 -o eth0 -j MASQUERADE
iptables -t nat -I POSTROUTING -d 192.168.2.100 -p tcp -m tcp --dport 8888 -o eth0 -j MASQUERADE
其他
- 用这三种方法。内网机器只要把GW(网关)指向旁路由,不会影响旁路由上的"特别"功能。
- ipv4端口映射,参考【设置openwrt路由器的防火墙_允许从外网访问_ipv6服务_ipv4端口映射】的后半部分。
---end---