如何通过 wifi 桥接两个不同的网络?

如何通过 wifi 桥接两个不同的网络?

请考虑以下硬件场景:

  • 设备:这是我想要从中获取数据的设备。当它通电时,它会创建一个 wifi 网络,其 SSID/网络密钥是固定的,无法更改。当我用电脑或手机加入网络时,我将获得 IP 地址 192.168.1.2。设备 A 将始终为 192.168.1.1,我可以通过打开端口 5000(192.168.1.1)的套接字来获取数据。数据将以每秒 500 千字节的速度传输。
  • 仅支持 Wifi 的平板电脑:我想使用平板电脑从设备获取数据,但我希望平板电脑同时连接到我的家庭网络 (192.168.0.x),这样它就可以上网。因此它不能直接连接到设备,否则它将无法上网。
  • 计算机(以太网 + wifi):我将其用作桥接器。计算机使用其 wifi 卡加入设备创建的 wifi 网络,并连接到我的以太网家庭网络。我让计算机在其 192.168.0 接口上的端口 5000 上监听,并将其转发到其 192.168.1 接口上的端口 5000,使用以下说明https://stackoverflow.com/questions/11525703/port-forwarding-in-windows

此解决方案有效,但是设备的数据速率不再是每秒 500 千字节,而是每秒 250 千字节,速度太慢了。我做错了什么?我可以购买任何特殊硬件吗?或者我可以使用 DD-WRT 路由器进行桥接并获得最大速度吗?

答案1

我实际上最终解决了这个问题,希望它对将来的某人有所帮助:DD-WRT 必须设置为客户端模式,这样它才能加入 AP。

然后,您需要禁用 DD-WRT 上的 DHCP 服务器,并设置命令让 DD-WRT 成为 LAN 上的 DHCP 客户端:

无线->基本设置->无线模式:客户端

禁用 DHCP 服务器(设置->基本设置->DHCP 服务器:禁用)

管理->命令(保存为启动脚本):

ln -s /sbin/rc /tmp/udhcpc
/usr/sbin/udhcpc -i br0 -p /var/run/udhcpc.pid -s /tmp/udhcpc -H `nvram get router_name`
route add default gw `nvram get wan_gateway`
nvram set wds_watchdog_ips="`nvram get wan_gateway`"

# Config DNS
/bin/cat /etc/resolv.conf | /bin/grep -v nameserver > /tmp/resolv.conf
/bin/echo nameserver `nvram get wan_get_dns` >> /tmp/resolv.conf
/bin/cp /tmp/resolv.conf /etc/resolv.conf

(参考:http://www.netguy.org/wordpress/?p=242

我的速度问题显然是由 wifi 信道干扰引起的,因此转移到另一个信道可以解决问题。

相关内容