树莓派实验室按:本文转自小莱沃博客,一般将树莓派作为WIFI热点使用会用到板载的有线网口接入互联网,然后配置内置或外接一块无线网卡为WIFI热点。而作者用树莓派3B内置的无线网卡加上一块USB无线网卡,将树莓派配置成了无需连接有线网卡的WIFI热点。下面看看他具体是怎么配置的吧。
一直想入手树莓派玩玩,最后受到一位大神的启发(懒人在思考)琢磨了另一种树莓派WIFI的用法。使用树莓派本身的系统,添加一个外置无线网卡,使其成为可移动的无线解决方案,当然主要还是为了能够安装某些S类的软件。

从淘宝购入硬件设备,下面开始折腾。
配置网络
安装 dnsmasq 和 hostapd
1 2 | sudo apt-get updatesudo apt-get install dnsmasq hostapd udhcpd |
将无线接口wlan0的IP配置成静态地址。外置无线网接口wlan1默认DHCP配置并接入因特网。在树莓派系统中,默认是DHCPCD配置网络接口。所以要告诉系统我们给wlan0分配静态IP地址,操作是打开配置文件并增加配置参数指令。
1 | sudo vi /etc/dhcpcd.conf |
1 2 | interface wlan0static ip_address=192.168.88.1/24 |
修改 /etc/network/interfaces 设置wlan1为 DHCP 并自动连接WIFI,wlan0 为固定IP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | # 表示使用localhostauto lo iface 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 |
重启树莓派
1 2 | sudo service dhcpcd restartsudo reboot |
配置 UDHCP
编辑配置文件/etc/udhcpd.conf
1 2 3 4 5 6 7 8 | 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
1 | sudo vi /etc/hostapd/hostapd.conf |
添加如下配置
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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模式下的配置。
1 | DAEMON_CONF="/etc/hostapd/hostapd.conf" |
设置开机启动
1 | sudo update-rc.d hostapd enable |
配置 DNSMASQ
备份默认配置文件
1 | sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.bak |
添加以下内容
1 2 3 4 5 6 7 8 | 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转发那一行的#注释
1 | sudo vi /etc/sysctl.conf |
1 2 | # Uncomment the next line toenable packet forwarding for IPv4net.ipv4.ip_forward=1 |
外置无线接口共享给wlan0上网,需要配置NAT:
1 2 3 4 5 | 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 |
保存以上防火墙规则
1 | sudo sh -c "iptables-save> /etc/iptables.ipv4.nat" |
在/etc/network/interfaces 末尾增加一行,设置为开机启动
1 | up iptables-restore < /etc/iptables.ipv4.nat |
编辑 /etc/network/if-pre-up.d/iptables
添加下面两行代码:
1 2 | #!/bin/bash/sbin/iptables-restore < /etc/iptables.ipv4.nat |
保存退出,然后修改 iptables 权限:
1 | sudo chmod 755 /etc/network/if-pre-up.d/iptables |
通过获取DHCPCD来运行NAT需要创建一个新文件
1 2 | sudo vi /lib/dhcpcd/dhcpcd-hooks/70-ipv4-natsudo iptables-restore < /etc/iptables.ipv4.nat |
重启服务及树莓派
1 2 3 | sudo service hostapd startsudo service dnsmasq startsudo reboot |
其他配置
设置 wlan1 自动连接区域内WIFI
1 | sudo vi /etc/wpa_supplicant/wpa_supplicant.conf |
在文件的末尾添加WIFI网络的名称以及密码,将要连接的wifi名称和密码替换即可。
1 2 3 4 | network={ ssid="SSID" psk="wifi_password"} |
使用sudo wpa_cli reconfigure命令启动连接
1 2 3 | pi@raspberrypi:~ $ sudo wpa_cli reconfigureSelected interface 'wlan0'OK |
转自小莱沃

https://spaces.ac.cn/archives/3728
这个比较简单,出问题容易恢复
这是我找了的最满意的方法,不过每次出去外面要链接别的无线都要用命令去更改需要链接的无线感觉很忙,要是可以做一个像openwrt的web无线链接界面,用来链接无线就完美了。
你好,我安照做了,可是手机搜不到WiFi,挺急的,在线等
你怎么用手机搜的?