簡體   English   中英

RPI通過以太網和網橋wifi並行訪問網絡

[英]RPI access network over ethernet and bridge wifi parallel

我目前正在嘗試使用pi作為監視系統,該系統需要連接到本地以太網。 現在我也想使用與wifi ap相同的pi。 但是我發現了pi橋接以太網和wifi的所有配置示例,因此pi本身再也無法訪問以太網了。

當前配置看起來像這樣

auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wireless-power off

如果我橋接網絡(並且rpi可以用作wifi ap),則配置如下所示

auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet manual

auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wireless-power off

auto br0
iface br0 inet static
address 192.168.1.11
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
bridge-ports eth0 wlan0
bridge-waitport 5
bridge-stp off
bridge-fd 0

那么問題是如何結合這兩種配置,以便pi也可以訪問同一(橋接)網絡?

對於類似這樣的拓撲,配置是this

             ________________________________________ 
            |                  RPi                   |
Internet ---  WLAN(WiFi)          (Ethernet Ports)LAN ----- Devices
            |________________________________________|

根據Milinds的評論,我從帖子中撤消了一個解決方案:

首先,安裝以下軟件包:

apt-get update && apt-get -y install hostapd hostap-utils iw bridge-utils dnsmasq

添加到/boot/cmdline.txt

[...] net.ifnames=0 [...]

替換/etc/network/interfaces

auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet dhcp

auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
wireless-power off
address 192.168.2.1
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255

創建/etc/hostapd/hostapd.conf

ctrl_interface=/var/run/hostapd
macaddr_acl=0 auth_algs=1
driver=nl80211
interface=wlan0
hw_mode=g
ieee80211n=1
channel=1
ssid=REPLACE_WITH_YOUR_SSID
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=1
wpa=3
wpa_passphrase=REPLACE_WITH_YOUR_PASSPHRASE
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

替換/etc/dnsmasq.conf

interface=wlan0 
listen-address=192.168.2.1 
bind-interfaces
server=8.8.8.8 
domain-needed 
bogus-priv
dhcp-range=192.168.2.2,192.168.2.100,12h

/etc/sysctl.conf取消注釋:

[...]
net.ipv4.ip_forward=1
[...]

現在運行以下命令進行iptable路由:

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

sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

在啟動時啟用IP表路由

exit 0之前添加到/etc/rc.local

[...]
iptables-restore < /etc/iptables.ipv4.nat
[...]

最終重新啟動,並且pi應該像從以太網端口共享wifi ap一樣工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM