问题解决
1、前端开发方面的问题
关于electron使用第三方nodejs模块编译打包的注意事项
关于使用electron开发串口项目中编译的一些注意事项
推荐一款更好用的字体抽取工具font-spider
failed Error: not found: python2.7的问题解决
thinkphp5.0.24兼容php7.4
nginx配置api前缀url转发,解决跨越访问
uni-app使用阿里iconfont多色图标
公众里如何发布竖版的视频,使用SVG方式
使用requireJS引入element-ui
2、后端开发方面的问题
记一次在centos7下安装Django博客的安装踩坑
oracle Cause: java.sql.SQLException: 调用中的无效参数
四种方式可以获取到nacos里的配置信息
gradle3.1升级到gracle7.6版本需要更新的地方
Idea解决Service启动服务不显示端口号的问题
docker中部署的flowable流程图乱码
jdk11版本的jenkins如何打包jdk8项目 ?
windows下面批量更新某个文件夹下面所有的git项目目录
在centos7.9环境上安装 nodejs20版本
3、部署运维方面的问题
virtualBox虚拟机拓展磁盘空间
win10家庭版本安装远程桌面
ssh连接虚拟机CentOS缓慢解决方法
jenkins构建的时候报git: Permission denied错误
安装sqlserver2017的时候遇到的两个坑
CentOS 的 YUM安装时卡死解决方案
docker容器在还原nexus3的数据的时候,注意
4、效率提升方面
win10系统右键没有新建文本文档的选项
微信双开的脚本.bat
Github Copilot如何使用,使用的快捷方式
copilot GitHub Copilot could not connect to server. Extension activation failed: “getaddrinfo ENOTFO
使用ffmpeg 将mp4里的音频摄取成mp3
5、问题的反思
记一次解决投票高并发引发的性能问题
uniapp 在远程调试的时候,报错Invalid Host header
解决绘世启动器的报错:Could not initialize Tensile library
Photoshop2024无法拖动图片导入的解决办法
kgm音乐文件解密操作
玄派星曜+开源宇宙eg01-c+rtx 4060ti 的一些配置说明
centos9上面安装wireguard后,无法启动服务Failed to set DNS configuration: Could not activate remote peer.
记一次破解瑞数6的工作过程(完美解决)
一级路由通过静态路由的方式访问二级路由
本文档使用 MrDoc 发布
-
+
首页
一级路由通过静态路由的方式访问二级路由
> 需求:我现在有两个路由器,一个一级,二个二级,二级的wan 插到 一级的lan口,一级是 10.168.1.x 二级是 192.168.31.x 网段,我现在二级访问一级的网络是没有问题的,但是一级路由的设备想访问二级路由下面的设备有问题,不通,,两台路由器 怎么配置静态路由? 配置步骤: ### 第一步:确认二级路由器的 WAN 口 IP 比如我这里是 10.168.1.157 ### 第二步:在一级路由器添加静态路由 登录一级路由器的管理界面,找到 “静态路由” 或 “高级路由设置” 功能(不同品牌位置不同,如 TP-Link、华硕、小米等)。 | 字段 | 值 | | ------------------------------- | ------------------------------------------ | | 目标网络(Destination Network) | `192.168.31.0` | | 子网掩码(Subnet Mask) | `255.255.255.0` | | 网关(Gateway) | `10.168.1.100`(即二级路由器的 WAN 口 IP) | | 接口(Interface) | 通常自动选择 LAN | | 启用(Enable) | ✅ 勾选 | > 📌 注意:网关必须填二级路由器在一级网络中的 IP(WAN IP),不是它的 LAN IP(192.168.31.1)! ### 测试连通性 在一级网络的设备上(如 IP 为 10.168.1.50 的电脑)执行: ~~~ ping 192.168.31.1 # 测试能否通二级路由器 ping 192.168.31.198 # 测试能否通二级下的某个设备 ~~~ 如果能通,说明配置成功。 我这里出问题了,我的二级路由是小米R2D, ping 192.168.31.1 可以通。 但是 ping 192.168.31.198 的时候,不行。 正在 Ping 192.168.31.198 具有 32 字节的数据: 来自 10.168.1.157 的回复: 无法连到端口。 通义千问给出来的回复是: ~~~ ✅ ping 192.168.31.1(二级路由器)是通的 → 说明静态路由配置成功,网络路径已经打通。 ❌ ping 192.168.31.198 不通,提示:“来自 10.168.1.157 的回复: 无法连到端口。” 这个提示其实不是“网络不通”,而是 ICMP 请求被转发了,但目标设备没响应 ping。 ~~~ **接着检查并关闭反向路径过滤:** 登录小米路由器ssh 。执行: ~~~ # 查看当前设置 cat /proc/sys/net/ipv4/conf/all/rp_filter cat /proc/sys/net/ipv4/conf/br-lan/rp_filter cat /proc/sys/net/ipv4/conf/eth0.2/rp_filter # WAN 口(VLAN2) ~~~ 全部返回0,没有问题。 **继续检查防火墙 FORWARD 规则** ~~~ iptables -L FORWARD -v -n ~~~ 得到的结果是: ~~~ Chain FORWARD (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 335K 269M delegate_forward all -- * * 0.0.0.0/0 0.0.0.0/0 ~~~ ==问题就出在这里,看看大模型下面是怎么分析的:== #### **防火墙 FORWARD 策略是 DROP ❌** ```bash Chain FORWARD (policy DROP 0 packets, 0 bytes) pkts bytes target prot opt in out source destination 335K 269M delegate_forward all -- * * 0.0.0.0/0 0.0.0.0/0 ``` - 虽然有 `delegate_forward` 规则在处理转发,但**默认策略是 `DROP`**。 - 关键是:**没有看到明确允许 `10.168.1.0/24 → 192.168.31.0/24` 的规则**。 - 小米老固件的 `delegate_forward` 是一个自定义链,可能没有包含跨子网 LAN-LAN 转发的信任规则。 ------ ### 🎯 问题定位 > ❌ **一级网络设备(10.168.1.x)发来的数据包,在到达小米 R2D 后,被 FORWARD 链默认 DROP 了。** 虽然你能 `ping 192.168.31.1`(路由器本身),但访问 `192.168.31.198` 是“经过路由器转发到下游设备”,属于 `FORWARD` 行为,受防火墙控制。 ------ ### ✅ 解决方案:手动添加 iptables 允许规则 你需要明确告诉小米路由器:“来自 `10.168.1.0/24` 的流量,允许转发到 `192.168.31.0/24`”。 #### 🔧 执行以下命令(通过 SSH): ```bash # 允许从一级网络访问二级网络设备 iptables -I FORWARD -s 10.168.1.0/24 -d 192.168.31.0/24 -j ACCEPT # 允许回包(从二级网络返回一级网络) iptables -I FORWARD -s 192.168.31.0/24 -d 10.168.1.0/24 -j ACCEPT ``` > ✅ `-I` 是插入到规则最前面,优先匹配。 ### 再次查看 FORWARD 链: ~~~ iptables -L FORWARD -v -n ~~~ 应该回看到: ~~~ pkts bytes target prot opt in out source destination 0 0 ACCEPT all -- * * 192.168.31.0/24 10.168.1.0/24 0 0 ACCEPT all -- * * 10.168.1.0/24 192.168.31.0/24 335K 269M delegate_forward all -- * * 0.0.0.0/0 0.0.0.0/0 ~~~ ### ✅ 设置开机自动加载(重要) 小米 R2D 重启后,iptables 规则会丢失。你需要写入启动脚本。 #### 编辑 `/etc/rc.local` ```bash vi /etc/rc.local ``` 在 `exit 0` 之前添加: ```bash # 允许一级网络访问二级网络 iptables -I FORWARD -s 10.168.1.0/24 -d 192.168.31.0/24 -j ACCEPT iptables -I FORWARD -s 192.168.31.0/24 -d 10.168.1.0/24 -j ACCEPT ``` 保存退出: - 按 `Esc` - 输入 `:wq` 回车 问题解决,完活 !
superadmin
2025年8月14日 12:30
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码