一直想入手樹莓派玩玩,最後受到一位大神的啟發琢磨了另一種樹莓派WIFI的用法。使用樹莓派本身的系統,新增一個外接無線網絡卡,使其成為可移動的無線解決方案,連線無線網路的同時在建立一個新的WIFI。後期可以配置S類的工具。
從淘寶購入硬體裝置,下面開始折騰。
配置無線網路連線
安裝 dnsmasq 和 hostapd
sudo apt-get install dnsmasq hostapd udhcpd
將無線介面wlan0的IP配置成靜態地址。外接無線網介面wlan1預設DHCP配置並接入因特網。在樹莓派系統中,預設是DHCPCD配置網路介面。所以要告訴系統我們給wlan0分配靜態IP地址,操作是開啟配置檔案並增加配置引數指令。
sudo vi /etc/dhcpcd。confinterface wlan0static ip_address=192。168。88。1/24
修改
/etc/network/interfaces
設定
wlan1
為 DHCP 並自動連線WIFI,
wlan0
為固定IP
# 表示使用localhostauto loiface lo inet loopback# wlan1 自動獲取IPauto wlan1iface wlan1 inet dhcppre-up wpa_supplicant -Dwext -i wlan1 -c /etc/wpa_supplicant/wpa_supplicant。conf -B# wlan0 為靜態IPauto wlan0allow-hotplug wlan0iface wlan0 inet staticaddress 192。168。88。1netmask 255。255。255。0
重啟樹莓派
sudo service dhcpcd restartsudo reboot
UDHCP
編輯配置檔案/etc/udhcpd。conf
start 192。168。88。100 #配置網段end 192。168。88。150interface wlan0 # The device uDHCP listens on。remaining yesopt dns 192。168。1。1 8。8。8。8opt subnet 255。255。255。0opt router 192。168。88。1 # 無線lan網段opt lease 864000 # 租期10天
HOSTAPD
建立hostapd。conf
sudo vi /etc/hostapd/hostapd。conf
新增如下配置
interface=wlan0driver=nl80211ssid=H-Pihw_mode=gchannel=6wmm_enabled=1macaddr_acl=0auth_algs=1ignore_broadcast_ssid=0wpa=2wpa_passphrase=abc12345wpa_key_mgmt=WPA-PSKrsn_pairwise=CCMP
修改 /etc/default/hostapd ,讓系統每次啟動都自動載入AP模式下的配置。
DAEMON_CONF=“/etc/hostapd/hostapd。conf”
設定開機啟動
sudo update-rc。d hostapd enable
DNSMASQ
備份預設配置檔案
sudo mv /etc/dnsmasq。conf /etc/dnsmasq。conf。bak
新增以下內容
interface=wlan0bind-interfacesserver=218。2。2。2server=114。114。114。114server=8。8。8。8domain-neededbogus-privdhcp-range=192。168。88。2,192。168。88。254,12h
設定IPV4轉發
開啟系統配置檔案sysctl。conf,去掉IPV4轉發那一行的#註釋
sudo vi /etc/sysctl。conf
# Uncomment the next line toenable packet forwarding for IPv4net。ipv4。ip_forward=1
外接無線介面共享給wlan0上網,需要配置NAT:
sudo iptables -Fsudo iptables -Xsudo iptables -t nat -APOSTROUTING -o wlan1 -j MASQUERADEsudo iptables -A FORWARD -i wlan1 -o wlan0 -m state ——state RELATED,ESTABLISHED -j ACCEPTsudo iptables -A FORWARD -i wlan0 -o wlan1 -j ACCEPT
儲存以上防火牆規則
sudo sh -c “iptables-save> /etc/iptables。ipv4。nat”
在 /etc/network/interfaces 末尾增加一行,設定為開機啟動
up iptables-restore < /etc/iptables。ipv4。nat
編輯 /etc/network/if-pre-up。d/iptables
新增下面兩行程式碼:
#!/bin/bash/sbin/iptables-restore < /etc/iptables。ipv4。nat
儲存退出,然後修改 iptables 許可權:
sudo chmod 755 /etc/network/if-pre-up。d/iptables
透過獲取DHCPCD來執行NAT需要建立一個新檔案
sudo vi /lib/dhcpcd/dhcpcd-hooks/70-ipv4-natsudo iptables-restore < /etc/iptables。ipv4。nat
重啟服務及樹莓派
sudo service hostapd startsudo service dnsmasq startsudo reboot
其他配置
設定 wlan1 自動連線區域內WIFI
vi /etc/wpa_supplicant/wpa_supplicant。conf
在檔案的末尾新增WIFI網路的名稱以及密碼,將要連線的wifi名稱和密碼替換即可。
network={ ssid=“SSID” psk=“wifi_password”}
使用sudo wpa_cli reconfigure命令啟動連線
pi@raspberrypi:~ $ sudo wpa_cli reconfigureSelected interface ‘wlan0’OK