Raspberry Pi 作为路由接入点

Raspberry Pi 作为路由接入点

因此,我使用 Raspberry OS Buster Lite 遵循以下配方:

https://www.raspberrypi.org/documentation/configuration/wireless/access-point-routed.md

我可以将我的笔记本电脑连接到 Pi(hostapd 可以工作)并毫无问题地获取 IP(dhcp 可以工作),我也可以通过 SSH 连接到它,但路由部分无法工作(我无法 ping 通互联网)。

下面的单行似乎不起作用:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

下面的命令抱怨 iptables-legacy 存在:

sudo netfilter-persistent save

我怀疑最近使用 nftables 对 iptables 进行的更改是这个方法不起作用的罪魁祸首。但其他一些来源建议使用下面的路由命令,所以我真的不知道:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

添加这个配方编辑 /etc/sysctl.d/routed-ap.conf 和其他源编辑 /etc/sysctl.conf 的事实使事情变得更加混乱。

除了秘籍中提供的方法之外,还有其他方法可以使路由持久化:

  1. 将 bash 脚本制作成 systemd 服务并使用 systemctl。
  2. 使用 iptables-restore 从 /etc/rc.local 运行 bash 脚本。

一些网络/路由专家能否解释一下这个令人困惑的问题,并说明这个新手系统管理员的最佳实践是什么?谢谢!

答案1

虽然我没有答案,但我同意这个问题。

添加iptablesLOG 规则在查询 DNS 时不会显示来自接入点网络的任何流量(OP 可能意味着无法访问互联网)。 eth0 网络中的本地服务器可以使用其 IP 地址进行访问。

让事情变得复杂的是,我正在运行 pihole(上述文章中的 10.10.0.103)。由于 pihole 已经运行 dnsmasq,所以我启动了第二个实例

dnsmasq --port=0 --conf-file=/etc/dnsmasq.wlan0.conf

有内容

interface=wlan0
dhcp-range=192.168.4.2,192.168.4.3,255.255.255.0,24h
dhcp-option=6,10.10.0.103
domain=wlan
address=/gw.wlan/192.168.4.1

任何有关 DNS 为何被悄悄忽略的建议都将受到高度赞赏!在此处输入代码

相关内容