网桥及IP转发在嵌入式linux eth0与wlan0连接使用方法

一.网桥连接eht0与wlan0

在嵌入式Linux中,使用网桥(Bridge) 连接 eth0(有线)和 wlan0(无线AP模式)是一个非常实用的方案,它能让连接到两者的设备处于同一个二层网络,像连接在同一台交换机上一样直接通信。

1.网桥核心原理

网桥工作在数据链路层(L2),其核心是一个自学习的MAC地址表和转发决策机制:

自学习:记录每个MAC地址从哪个端口(如eth0或wlan0)收到。

转发/过滤:

若目标MAC在表中,则只转发到对应端口。

若未知或为广播地址(FF:FF:FF:FF:FF:FF),则泛洪到所有其他端口。

透明性:主机感知不到网桥存在,IP配置无需改变。

2.嵌入式Linux配置:eth0与wlan0桥接

以下是在嵌入式系统(如使用RV1106等平台)上创建网桥的完整步骤和脚本。目标是让连接到WiFi AP的PC,能直接访问连接到eth0的传感器(假设传感器IP为192.168.1.100)。

(1).配置网桥和接口(关键步骤)

这是最核心的配置部分,请按顺序操作:

#!/bin/sh

创建网桥设备br0,并启用它

ip link add name br0 type bridge

ip link set br0 up

将物理接口eth0和wlan0添加到网桥

**注意:接口加入网桥后,不再需要单独的IP地址**

ip link set eth0 master br0

ip link set wlan0 master br0

为网桥br0本身配置IP地址,作为本机的管理地址和网关

ip addr add 192.168.1.1/24 dev br0

#(可选但推荐)确保接口本身是启动状态

ip link set eth0 up

ip link set wlan0 up

(2).配置无线AP(Hostapd)

需要让wlan0工作在AP模式,并绑定到网桥。

修改Hostapd配置文件(例如 /etc/hostapd.conf):

interface=wlan0

bridge=br0 # 关键行:指定AP关联的网桥

driver=nl80211

ssid=MyEmbeddedAP

hw_mode=g

channel=6

wpa=2

wpa_passphrase=YourPassword

wpa_key_mgmt=WPA-PSK

rsn_pairwise=CCMP

(3) . 配置DHCP服务器(可选)

如果你希望PC和传感器能自动获取IP,可以在网桥br0上运行一个DHCP服务器(如dnsmasq)。

dnsmasq配置示例:

启动dnsmasq,为br0网段提供服务(/etc/dnsmasq.conf)

interface=br0

dhcp-range=192.168.1.100,192.168.1.150,12h

dhcp-option=option:router,192.168.1.1

dhcp-option=option:dns-server,8.8.8.8

3.设置开机自启动

为了使配置在重启后生效,你需要将上述命令(或等价的配置)放入启动脚本中。

Init.d系统:创建启动脚本放在 /etc/init.d/ 并设置链接。

最直接的方式:将命令添加到 /etc/rc.local(如果存在)。

一个简单的/etc/rc.local示例:

#!/bin/sh

创建并启动网桥

ip link add name br0 type bridge

ip link set br0 up

ip link set eth0 master br0

ip link set wlan0 master br0

ip addr add 192.168.1.1/24 dev br0

启动hostapd

/usr/sbin/hostapd -B /etc/hostapd.conf

启动dnsmasq

dnsmasq -C /etc/dnsmasq.conf

exit 0

rc.local 执行权限:chmod +x /etc/rc.local

二.路由方式连接eth0与wlan0

在嵌入式Linux中,使用路由 连接 eth0(有线)和 wlan0(无线AP模式),然后通过wifi方案eth0连接的固定ip设备。

1.修改Hostapd配置文件(例如 /etc/hostapd.conf):

nterface=wlan0

driver=nl80211

ssid=test7

hw_mode=g

channel=6

wmm_enabled=0

macaddr_acl=0

auth_algs=1

ignore_broadcast_ssid=0

wpa=2

wpa_passphrase=12345678

wpa_key_mgmt=WPA-PSK

wpa_pairwise=TKIP

rsn_pairwise=CCMP

2.dnsmasq配置示例(/etc/dnsmasq.conf):

interface=wlan0

dhcp-range=192.168.4.2,192.168.4.10,255.255.255.0,24h

3.启用IP转发(IP Forwarding):

echo 1 > /proc/sys/net/ipv4/ip_forward

4.ifconfig eth0 192.168.1.2 netmask 255.255.255.0 up

连接到eth0的设备固定ip也为1网段

说明:

这种连接方式wlan0和eth0是不同网段,但是设置ip转发后通过wifi可以直接访问连接到eth9的1网段设备。

三.方案对比:网桥 vs. IP转发

网桥方案:更简洁高效。数据在二层直接交换,设备如同直连,无需处理三层路由和NAT,延迟更低,配置更直观。

IP转发方案:更复杂。需要开启ip_forward,管理路由表,可能需配置防火墙NAT规则,且设备处于不同广播域。

结论:在需要透明连接、同子网、低延迟的嵌入式场景(如物联网网关、设备直连)中,网桥方案是首选。

相关推荐
I · T · LUCKYBOOM2 小时前
1.Apache网站优化
linux·运维·服务器·网络·apache
JANGHIGH2 小时前
vmware安装ubuntu虚拟机后与主机win10共享文件夹
linux·运维·ubuntu
GHL2842710902 小时前
vmware中无法看到共享文件夹
linux·运维·服务器
范纹杉想快点毕业3 小时前
嵌入式C语言实战开发详解
linux·运维·算法
天骄t3 小时前
数据库入门:SQLite实战指南
linux
张某人的胡思乱想3 小时前
周末随笔-整理ubuntu环境
linux·运维·ubuntu
翔云 OCR API3 小时前
智能发票查验接口在财务自动化中的技术实现与应用价值
linux·运维·自动化
硬核子牙3 小时前
送别2025,喜迎2026
linux
大聪明-PLUS4 小时前
FUSE:如何编写自己的文件系统
linux·嵌入式·arm·smarc