有很多教程展示了如何使用 Raspberry Pi 4 设置 Wifi AP,所有教程都有不同的配置。我正在尝试使用我的具体设置来执行此操作,如下所示:
RPi4 充当 Wifi AP。它与Kali for Raspberry一起安装。它有一个
eth0
通过我的家庭 Wifi 路由器(我们称之为路由器HomeWifi
)连接到互联网的接口。我想将此 RPi4wlan0
用作 Wifi AP 接口,接收来自其他设备的本地网络流量。所以,基本上,这个 RPi4 位于我HomeWifi
和我想要连接到互联网的设备之间。一台 Debian 笔记本电脑位于 RPi4 后面,想要访问互联网。我们称这个设备为
TestDevice
以下是我在 RPi4 上设置的各种配置:
1 - 在/etc/network/interfaces
:
auto lo
iface lo inet loopback
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.220.1/24
2 - 在/etc/hostapd/hostapd.conf
:
interface=wlan0
driver=nl80211
hw_mode=g
channel=6
ieee80211n=1
wmm_enabled=0
macaddr_acl=0
ignore_broadcast_ssid=0
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
ssid=mypirouter
wpa_passphrase=password_for_mypirouter
3 - 在/etc/init.d/hostapd
:
DAEMON_CONF=/etc/hostapd/hostapd.conf
4进/etc/dnsmasq.conf
:
resolve-file="/etc/resolv.dnsmasq"
server=1.1.1.1
interface=wlan0
bind-dynamic
dhcp-range=192.168.220.50,192.168.220.150,12h
dhc-option=option:router,192.168.1.1
log-queries
log-dhcp
5 - 在/etc/resolv.conf
nameserver 127.0.0.1
关于我这样做的原因的注释:我引用了NOTES
页面中的部分man dnsmasq
。它说
...in order to configure dnsmasq to act as cache for the host on which it is running, put "nameserver 127.0.0.1" in /etc/resolv.conf....
6英寸/etc/resolv.dnsmasq
nameserver 1.1.1.1
nameserver 8.8.8.8
7英寸/proc/sys/net/ipv4/ip_forward
1
8在/etc/sysctl.conf
:
net.ipv4.ip_forward=1
9 - 以下是设置iptables
:
*nat
:PREROUTING ACCEPT [1:32]
:INPUT ACCEPT [1:32]
:OUTPUT ACCEPT [1:248]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [9023:800718]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [8673:816768]
-A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wlan0 -o eth0 -j ACCEPT
COMMIT
结果:
在 RPi4 上运行以下服务后:
sudo systemctl start hostapd
sudo systemctl start dnsmasq
我确认这两个服务都在 RPi4 上运行。
然后,在我的 上,我成功TestDevice
连接到 SSID 。mypirouter
运行ifconfig
显示TestDevice
它已被分配 IP 为192.168.220.141
,完全在上面配置的范围内。
现在,当我尝试ping www.google.com
使用时TestDevice
,出现以下错误:
PING www.google.com 56(84) bytes of data
From TestDevice (192.168.220.141) icmp_seq=1 Destination Host Unreachable
From TestDevice (192.168.220.141) icmp_seq=2 Destination Host Unreachable
...
但是,如果我尝试通过其静态 IP 对 RPi4 执行 ping 操作
ping 192.168.220.1
我能够收到这样的回复:
PING 192.168.220.1 56(84) bytes of data
64 bytes from 192.168.220.1: icmp_seq=1 ttl=64 time=2.46 ms
64 bytes from 192.168.220.1: icmp_seq=2 ttl=64 time=2.84 ms
...
此时,我怀疑iptables
. 但我不知道如何解决这个问题。非常感谢任何建议。