主路由撥號_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---