1.为什么使用旁路网关
可先参考以下文章:旁路由的原理与配置一文通 - Eason Yang's Blog
2.openwrt旁路网关配置教程
针对刚刚安装好openwrt的用户可先进行以下操作
1.配置旁路网关地址为静态地址
2.关闭ipv6和dhcp服务
完成上述操作后点击右下角的保存&应用
3.无法访问国内网站解决方案
方案1(推荐):
1.在完成上述操作后访问配置的旁路网关地址,比如此次我配置为192.168.1.254
2.打开网络-->防火墙,配置防火墙规则,确认转发为接受状态
3.在防火墙设置里面下滑,转到区域设置中,开启lan到wan的IP动态伪装和MSS钳制
IP动态伪装和MSS钳制作用如下(生成自deepseek)
一、IP动态伪装(IP Masquerading)
作用:
-
网络地址转换(NAT)
允许内网设备(使用私有IP地址,如192.168.x.x
)通过路由器的公网IP访问互联网。OpenWrt路由器会将内网设备的私有IP动态转换为公网IP,使外网服务器看到的所有流量都来自路由器的公网地址。 -
连接跟踪与状态维护
动态伪装会跟踪每个内网设备的网络连接状态,确保返回的响应数据包能正确转发到对应的内网设备。 -
安全隔离
默认隐藏内网设备的真实IP,避免内网设备直接暴露在公网,增强安全性。
配置示例(OpenWrt):
- 在
/etc/config/firewall
中,通常会在wan
区域的防火墙规则中启用IP动态伪装:config zone option name 'wan' option masq '1' # 开启动态伪装 option mtu_fix '1' ...
原理:
- 当内网设备发送请求到外网时,路由器会修改数据包的源IP(从私有IP改为公网IP)和源端口,并记录转换规则。
- 外网返回的响应数据包会被路由器根据记录反向转换,确保正确路由到内网设备。
二、MSS钳制(MSS Clamping)
作用:
-
避免TCP分片(Path MTU Discovery)
当网络路径中存在不同MTU(最大传输单元)的设备时(如PPPoE拨号的MTU通常为1492,而以太网默认MTU为1500),MSS钳制通过强制修改TCP连接的MSS(最大报文段大小)值,确保数据包不会超过路径中的最小MTU,从而避免分片或丢包。 -
提升网络性能
减少因分片导致的延迟和重传,优化TCP连接效率。
配置示例(OpenWrt):
- 针对PPPoE拨号(MTU=1492),在防火墙规则中设置MSS钳制:
或手动指定MSS值(如PPPoE场景下推荐设置为config rule option name 'Clamp MSS' option src 'lan' option proto 'tcp' option tcp_flags 'SYN,RST' option target 'ACCEPT' option clamp_mss_to_pmtu '1' # 自动根据路径MTU调整MSS
1452
):option clamp_mss_to_pmtu '0' option set_mss '1452' # MSS = MTU(1492) - IP头(20) - TCP头(20) = 1452
原理:
- 在TCP三次握手的
SYN
阶段,路由器会检测客户端的MSS值。 - 如果客户端的MSS大于路径MTU允许的值,路由器会将其修改为更小的值(如从
1460
改为1452
)。 - 后续的TCP数据包将基于新的MSS值传输,避免分片。
三、两者的协同作用
- IP动态伪装解决的是内网设备访问外网的地址转换问题,确保流量可达。
- MSS钳制解决的是TCP连接在复杂网络环境中的传输效率问题,避免因MTU不匹配导致的性能下降。
典型应用场景:
- 家庭/企业网络:内网设备通过NAT上网(IP伪装),同时通过MSS钳制优化PPPoE、VPN等场景下的网络性能。
- 移动热点:手机热点共享网络时,动态伪装和MSS钳制可协同保障连接的稳定性和速度。
总结
- IP动态伪装:核心是NAT,解决内网设备通过单一公网IP访问外网的问题。
- MSS钳制:核心是优化TCP连接,避免因MTU差异导致的分片和性能损失。
- 配置位置:两者均通过OpenWrt的防火墙配置(
/etc/config/firewall
)或LUCI界面(Network → Firewall)实现。
方案2:
以下来源于恩山:https://www.right.com.cn/forum/thread-4453763-1-1.html
1.LAN口取消桥接
2.防火墙添加"iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE",重启防火墙
另外确保开启了转发,以及关闭LAN口dhcp服务
更多解释:关于旁路由设置后,主路由WIFI无法上网的问题「建议收藏」-腾讯云开发者社区-腾讯云
我的理解:
按照此方法也可以解决无法访问国内网站的问题,但"iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE"使内部设备(如 192.168.1.0/24
)通过openwrt访问外网时,其源 IP 会被伪装成 eth0
的 IP,即本次设置的192.168.1.254,使得返回的流量能正确回到openwrt,再由openwrt转发回内部设备。其实现的功能与上面IP动态伪装类似,但实测国内网站打开速度变慢,我猜测有可能和分流设置有关,待求证。
4.设置了默认网关地址为旁路网关地址后无法使用远程桌面连接解决方案:
拓扑图如下
1.主路由设置端口转发到旁路网关
2.旁路网关设置端口转发到需要被远程的设备
当保存&应用之后发现远程桌面使用不了,编辑刚刚创建的端口转发规则,将源区域改为LAN后可成功访问远程桌面。
另附cisco packet tracer官方下载地址,此版本需要登陆:
下载页面:Resource Hub: Get Packet Tracer, Virtual Machines, and More
123网盘镜像地址:Packet_Tracer822_64bit_setup_signed.exe官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘
SHA1: 5ab531b64c8e0d57f85f3d073cb31cc8e28bbcaf
SHA256: 1aa1094bfa611c955c2e2885aea3bc8685211c95b55de017242fd0d38eb7cab1
MD5: d1d65286b7ee0a1e8b9dce107ac94f4c
227 MB (238,928,968 字节)