利用树莓派将 WIFI 网络转发到路由器WAN口
利用树莓派将 WIFI 网络转发到路由器WAN口
1 目的
树莓派的无线网卡和有线网卡作路由,无线网卡与外网(如电信路由器出口)相连,有线网卡与内网相连。
内网通过一个路由器分发。
实现内外网隔离。
2 概况
外网网络(局域网):192.168.0.0/24
树莓派NAT路由:192.168.2.0/24(有线网卡) --> 192.168.0.112(树莓派的无线网络IP)
树莓派无线网卡IP:192.168.0.112
树莓派有线网卡IP:192.168.2.1
内网网络:192.168.2.0/24
内网测试电脑IP:192.168.2.2
路由器外网地址:192.168.2.2 (和电脑测试一样)
路由器NAT网络:192.168.3.0/24 (随意)
3 环境
1.树莓派4。
2.树莓派能够连接WIFI,WIFI连接互联网。
3.一根网线和一个路由器。
4 主要节点
1.树莓派和电脑互联,以树莓派作为主机,实现局域网互通。
2.配置NAT,使发送到eth0的包能够被转发到wlan0上去,从而实现网络共享。
3.测试的时候用PING,PING通了之后如果不能正常上网则检查dns设置等问题。
4.1 局域网互通
1.将树莓派连接至WIFI,保证可以上网。
2.树莓派与电脑直连(先不与路由器WAN口连接,方便测试)。电脑有线网卡设置IP为192.168.2.2/24,网关为192.168.2.1。树莓派有线网卡IP设置为192.168.2.1/24。
3.树莓派的路由表调整。移除eth0的默认路由表,添加对192.168.2.0/24网络的eth0转发规则。如:
route delete default dev eth0
route add -net 192.168.2.0/24 dev eth0
4.此时,局域网配置完成,PING检查是否互通。
4.2 启用内核包转发
其实是很重要的一步,因为内核默认是关闭这个功能的。
相关方式可以在网上查,这里提供一条。
echo "1" > /proc/sys/net/ipv4/ip_forward
4.3 转发规则
1.在树莓派端配置,命令如下
sudo iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o wlan0 -j SNAT --to 192.168.0.112
即,将192.168.2.0/24网络上的源数据包转发到wlan0对应192.168.1.112源IP上(描述不准确,就是一条NAT类型的转发规则)。
2.此时,PING 192.168.0.0/24网络的IP地址应通过。配置好主机的DNS服务后,外网网络地址也相应能够解析访问。
4.4 连接路由器
1.与连接电脑类似,将树莓派与路由器WAN口连接。路由器上网方式(也即WAN口的网络配置)设置为静态IP,与电脑上设置一致即可。路由器网络设置为192.168.3.0/24即可正常工作(不冲突即可)。
5 性能
实测CPU占用只能跑到25%(单核占用),不知道是不是方法问题。下行/上行速度最高约 25~30 Mbps。经过测试发现,速率与无线网络信号强度有关。
附1 /etc/rc.local
以下脚本直接放在启动脚本或者手动执行均可。如果路由器、树莓派总共三块网卡的IP均配置正确的话,电脑连接到路由器的WI-FI,就能PING通外网了。
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o wlan0 -j SNAT --to 192.168.0.112
route delete default dev eth0
route add -net 192.168.2.0/24 dev eth0
ifconfig eth0 192.168.2.1/24
附2 另一个 /etc/rc.local
找了另一个方案,不依赖于具体的外网地址
echo "1" > /proc/sys/net/ipv4/ip_forward
#iptables -A FORWARD -i wlan0 -j ACCEPT
#iptables -A FORWARD -o wlan0 -j ACCEPT
iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
route delete default dev eth0
route add -net 192.168.2.0/24 dev eth0
ifconfig eth0 192.168.2.1/24
posted on 2020-10-31 18:24 amazzzzzing 阅读(2663) 评论(2) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)