树莓派WIFI热点
1. 安装配置DNSmasq
DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能。它服务那些只在本地适用的域名,这些域名是不会在全球的DNS服务器中出现的。DHCP服务器和DNS服务器结合,并且允许DHCP分配的地址能在DNS中正常解析,而这些DHCP分配的地址和相关命令可以配置到每台主机中,也可以配置到一台核心设备中(比如路由器),DNSmasq支持静态和动态两种DHCP配置方式。
安装
1 | sudo apt-get install dnsmasq |
配置
修改/etc/dnsmasq.conf文件
1 | sudo vi /etc/dnsmasq.conf |
这个文件配置比较大,但是都注释了
这里指定一下接口,配置一下dhcp分配的ip范围,在末尾加上:
1 | interface=wlan0 |
如需要指定DNS解析,再加上:
1 | addn-hosts=/etc/dnsmasq.hosts |
然后创建/etc/dnsmasq.hosts 文件,这里复制hosts文件
1 | cp /etc/hosts /etc/dnsmasq.hosts |
然后按照需要改内容,如:
1 | 192.168.0.1 raspberrypi |
默认开机启动
可以查看一下:
1 | systemctl status dnsmasq |
2. 安装hostapd
hostapd 是一个用户态用于AP和认证服务器的守护进程。
它实现了IEEE 802.11相关的接入管理,IEEE 802.1X/WPA/WPA2/EAP 认证, RADIUS客户端,EAP服务器和RADIUS 认证服务器。Linux下支持的驱动有:Host AP,madwifi,基于mac80211的驱动。
安装
1 | sudo apt-get install hostapd |
配置
创建 /etc/hostapd/hostapd.conf
1 | #sudo vi /etc/hostapd/hostapd.conf |
填入以下内容:
1 | interface=wlan0 |
3. 配置接口
将无线接口wlan0的IP配置成静态地址
dhcpcd不再管理wlan0,避免设置冲突
1
# sudo vi /etc/dhcpcd.conf
禁用wlan0接口
1
denyinterfaces wlan0
给wlan0配置固定IP
修改 /etc/network/interfaces 文件成如下:1
2
3
4
5
6
7
8
9allow-hotplug wlan0
#iface wlan0 inet dhcp
# wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface wlan0 inet static
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255重启相关服务
1
2
3
4
5
6sudo service dhcpcd restart
sudo ifdown wlan0
sudo ifup wlan0
4 启动hostapd
1 | sudo hostapd -B /etc/hostapd/hostapd.conf & > /dev/null 2>&1 |
如果没有问题,并且手机等设备可以连接
修改配置文件
1 | sudo vi /etc/default/hostapd |
1 | ##将## |
设置为开机启动
1 | sudo systemctl enable hostapd |
重新使用wifi连接网络
停掉两个服务的自启动
1 | sudo systemctl disable dnsmasq |
关闭两个服务
1 | sudo systemctl stop dnsmasq |
启动wlan0接口的dhcpcd服务
1 | sudo vi /etc/dhcpcd.conf |
修改为获取动态IP
修改 /etc/network/interfaces 文件成如下:
1 | allow-hotplug wlan0 |
重启相关服务和网卡
1 | sudo service dhcpcd restart |
(下面的没有测试)
配置NAT
– 这先不弄,觉得没有必要转发
修改/etc/sysctl.conf,更改(如果有这一行,把#号去掉就行)
1 | net.ipv4.ip_forward=1 |
通过iptables做NAT转发:
1 | sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE |