前提:新墨西哥州北部的一家牧场/宾馆希望在允许客人进入其他开放网络之前,先向他们显示一个启动页面。
目前,互联网通过调制解调器传输并通过 Eero 信标(eero.com)进行广播,因为它是一个非常大的属性。
我正在尝试帮助他们实现这一目标,并成功将 RPi3B+ 连接到调制解调器,并创建了一个通过 NoDogSplash 为启动页面提供服务的 WiFi 接入点(遵循 pimylifeup 上的指南:AP 和 Captive Portal),这很棒。
然而,这并没有多大帮助,因为网络没有覆盖到房产的其他部分,如果可以避免的话,我们不想为这个网络投资额外的无线中继器。
Eero 系统可以创建访客网络,但不能创建强制门户,第一个“信标”上有两个以太网端口,Eero 确认这两个端口都是输入/输出端口。理论上,Eero 可以通过这种方式广播两个网络。
我们订购了一个 USB-ETH 适配器并将其插入。我尝试将 PiMyLife up 教程中的 wlan0 重命名为 eth1(ifconfig 中出现的接口),重新启动,刷新 iptables 等等,但 ETH1 无法连接互联网。本教程结合使用 hostapd、dhcpcd.conf 和 dnsmasq 的一些更新以及 iptable 规则来实现从 eth0 到 wlan0 的预期效果。
在网上阅读了大量资料后,我产生了以下疑问:
我这样做是否正确?可能吗?使用 DHCP 和 DNSMASQ 是否足以以某种方式实现这一点?我需要重新调整使用网桥吗?网桥是否“足够智能”以服务于强制门户,还是仅仅是一种转发机制?基于这个问题,听起来上面提到的教程可以满足我的需要,但我不明白我需要做哪些更改才能使用 eth1 代替 wlan0。作者说:我按照这篇文章 [pimylifeup 文章] 操作,它让我知道连接到 eth1 的测试笔记本电脑能够通过 DHCP 获取 IP 地址并浏览远程网页。
我也尝试使用这个脚本,但一直收到错误 eth0|eth1 不是 WiFi 接口,所以大概也需要无线接口来完成它的工作......
在这个阶段非常困惑,任何建议或指导都值得赞赏。在我看来这里给出的建议可能适用,但我不完全确定这是否允许我在两者之间放置一个强制门户......
答案1
按照以下说明操作,成功解决了在 Stretch 上将 eth0 转发到 eth1 的问题:
https://github.com/acuparse/acuparse/wiki/Installation-on-Raspberry-Pi
请记住,本指南使用 eth1 作为与路由器(ISP)的连接,使用 eth0 作为通向扩展器的端口,因此如果您的设置与我的一样,请确保在看到它们时将它们反转!
而且,一开始它不起作用,所以我回到 PiMyLifeUp 指南并在 /etc/sysctl.conf 中设置了重要的 net.ipv4.ip_forward=1!果然,互联网被转发到了通过 eth1 连接的笔记本电脑上。
您也可以忽略他们编辑 /etc/hosts 文件的部分
从这里开始,再次设置 NoDogSplash 就变得非常容易了,它毫无困难地瞄准了 eth1 接口。下一个问题是必须将 Eero 设置为桥接模式。这会禁用其 DHCP 功能并将其传递到上游,在本例中是 Pi。这意味着房主在 Eero 应用程序中可玩的东西少了一点,但这是可以接受的。Eero 仍然管理网络密钥,因此我们有一个受密码保护的网络,为强制门户提供服务。我已经将所有已经在网络上的 MAC 列入白名单,我们就可以开始了!