1、安装dnsmasq
(ubuntu14.04自带的DNS服务器dnsmasq:http://www.linuxdiyf.com/linux/14667.html)
2、执行命令
sudo dnsmasq -i wlan2 --dhcp-range=192.168.8.100,192.168.8.109,2h #--dhcp-range选项除了指定ip分配范围,更是一个打开dhcp功能的开关!2h表示ip租期为2小时
执行后显示(必须加上-d选项才能看到)
dnsmasq: started, version 2.59 cachesize 150
dnsmasq: compile time options: IPv6 GNU-getopt DBus i18n DHCP TFTP conntrack IDN
dnsmasq-dhcp: DHCP, IP range 192.168.8.100 -- 192.168.8.109, lease time 2h
dnsmasq: reading /etc/resolv.conf
dnsmasq: using nameserver 192.168.0.1#53
dnsmasq: 读取/etc/hosts - 7地址
手机接入热点后,dnsmasq收到dhcp请求,并给出dhcp应答
dnsmasq-dhcp: DHCPREQUEST(wlan2) 192.168.0.100 ac:f7:f3:ed:a6:77
dnsmasq-dhcp: DHCPNAK(wlan2) 192.168.0.100 ac:f7:f3:ed:a6:77 wrong network
dnsmasq-dhcp: DHCPDISCOVER(wlan2) ac:f7:f3:ed:a6:77
dnsmasq-dhcp: DHCPOFFER(wlan2) 192.168.8.103 ac:f7:f3:ed:a6:77
dnsmasq-dhcp: DHCPREQUEST(wlan2) 192.168.8.103 ac:f7:f3:ed:a6:77
dnsmasq-dhcp: DHCPACK(wlan2) 192.168.8.103 ac:f7:f3:ed:a6:77 MI2SC-rubic
前两条打印——我猜——是因为手机一开始发送dhcp请求时,之前在别的wifi环境下获得的ip配置还没有清空,所以NAK。
注意:
1、启动dnsmasq前务必确保你的wifi卡已经处于AP模式且配置好静态IP,否则手机会收不到热点下发的ip。
2、如果还有问题,启动dnsmasq时加上-d选项,就会进入前台模式,把所有错误告警都打印到控制台,方便排查。
3、dnsmasq的--dhcp-optsfile选项没什么用,它里面的dhcp-range含义跟/etc/dnsmasq.conf里的一样,但优先级却比后者低(被覆盖)。所以想将配置文件写在工程src目录下的朋友有福了,就用我的方法,避免改写/etc目录。