惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
G
Google Developers Blog
L
LangChain Blog
Y
Y Combinator Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
大猫的无限游戏
大猫的无限游戏
博客园 - Franky
V
Visual Studio Blog
小众软件
小众软件
月光博客
月光博客
A
About on SuperTechFans
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
The Blog of Author Tim Ferriss
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
阮一峰的网络日志
阮一峰的网络日志
Last Week in AI
Last Week in AI
博客园 - 【当耐特】
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
MongoDB | Blog
MongoDB | Blog
Jina AI
Jina AI
美团技术团队
量子位

博客园 - airoot

用得顺手的软件记录 关闭win11开始菜单中的“全部” Aircrack-ng抓握手包 Chrome浏览器升级到138后不支持MV2插件 BGP 在线工具全景:从路由监控到策略验证 Chrome历史版本下载 Hyper Server 2019安装I226-V网卡驱动 FortiGate连接中国联通SDWAN Pve安装Win10 解决zabbix7.0图形中文乱码 openwrt squashfs镜像扩容 Redmi AX3000免拆开启SSH刷入OpenWrt vRealize Operations Manager 报告和大屏配置 使用 Cloudflare Tunnel 作为反向代理访问内网服务 PVE8.3.1创建LXC部署Docker PVE的local和local-lvm PVE8.3.1安装注意事项 PVE8.3.1 直通硬盘 PVE8.3.1开启核显虚拟化SR-IOV PVE8.3.1 LXC下安装 OpenWRT 记录 PVE 8.3.1安装后的优化 ESXi 直通 7840HS 核显 Esxi intel iGPU SR-IOV
Openwrt作为旁路由的必要设置
airoot · 2025-02-16 · via 博客园 - airoot

前面的步骤不写了,网上教程很多,这里单独说说配置SNAT规则的问题,也是很多教程没有普及到的部分。

也就是这条命令配置是否可选的问题,个人建议还是加上:

iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

以上命令格式仅适用于OpenWrt22.03之前的iptables,也就是基于firewall3防火墙;而OpenWrt 22.03(含)起,防火墙由firewall3切换到了firewall4,底层也从 iptables 变成了 nftables

具体可见:https://openwrt.org/releases/22.03/start 中的关于防火墙升级的说明,新的firewall4防火墙配置说明请参考:https://openwrt.org/docs/guide-user/firewall/firewall_configuration#includes_for_2203_and_later_with_fw4

先解释一下这条命令的功能:当内部网络设备通过 eth0 访问外部网络时,MASQUERADE 会将数据包的源IP替换为 eth0 的IP地址,使外部网络看到的是 eth0 的IP,而不是内部设备的IP,简单来说就是做SNAT。

这么做的原因: 当OpenWrt作为旁路由运行时,通常情况下只启用一个LAN口,当其作为内网其他设备的网关时,数据会直接转发给主路由网关,数据包内的源 IP 是不会被修改的。这会导致路由来回不一致的问题。

所以以下情况需要加上这条规则:

1. 主路由开DHCP(未指向旁路由网关),旁路由关DHCP,旁路由只有LAN口工作,其他设备需设置静态网关为旁路由
2. 主路由开DHCP(未指向旁路由网关),旁路由开DHCP(强制模式开),旁路由只有LAN口工作,其他设备通过强制DHCP获取旁路由网关
3. 主路由开DHCP(指向旁路由网关),旁路由关DHCP,旁路由只有LAN口工作
4. 主路由关DHCP,旁路由开DHCP,旁路由只有LAN口工作

什么情况下可以不加?

添加一个WAN口,关闭LAN口桥接,WAN口和LAN口共用eth0,WAN口发出数据的时候,会自动做SNAT,回来的包会先回到旁路由,再返给内网设备。

参考:

https://wiki.nftables.org/wiki-nftables/index.php/Quick_reference-nftables_in_10_minutes

https://www.right.com.cn/forum/thread-2983767-1-1.html