一直想入手树莓派玩玩,最后受到一位大神的启发琢磨了另一种树莓派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 lo iface lo inet loopback# wlan1 自动获取IPauto wlan1 iface wlan1 inet dhcp pre-up wpa_supplicant -Dwext -i wlan1 -c /etc/wpa_supplicant/wpa_supplicant.conf -B# wlan0 为静态IPauto wlan0 allow-hotplug wlan0 iface wlan0 inet static address 192.168.88.1netmask 255.255.255.0
重启树莓派
sudo service dhcpcd restart sudo reboot
UDHCP
编辑配置文件/etc/udhcpd.conf
start 192.168.88.100 #配置网段 end 192.168.88.150 interface wlan0 # The device uDHCP listens on. remaining yes opt dns 192.168.1.1 8.8.8.8 opt subnet 255.255.255.0 opt router 192.168.88.1 # 无线lan网段 opt lease 864000 # 租期10天
HOSTAPD
创建hostapd.conf
sudo vi /etc/hostapd/hostapd.conf
添加如下配置
interface=wlan0 driver=nl80211 ssid=H-Pi hw_mode=g channel=6 wmm_enabled=1 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=abc12345 wpa_key_mgmt=WPA-PSK rsn_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=wlan0 bind-interfaces server=218.2.2.2 server=114.114.114.114 server=8.8.8.8 domain-needed bogus-priv dhcp-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 -F sudo iptables -X sudo iptables -t nat -APOSTROUTING -o wlan1 -j MASQUERADE sudo iptables -A FORWARD -i wlan1 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT sudo 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-nat sudo 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 reconfigure Selected interface 'wlan0'OK
本文暂时没有评论,来添加一个吧(●'◡'●)