小米家居和华硕路由之八字不合

最近逛小米之家的时候,入手了一点新鲜玩意,送了一台小爱音响万能遥控版。要说小米这个生态系统真的是处处布局,一个小爱还带一个万能遥控,真是为了推广不遗余力,不过总归是送的,推广就推广吧,实用其实也挺实用的。但是就是这么一台几十块钱的音箱,差点逼我重新入手一台小米路由。

故事是这么开始的,当我满心欢喜的给小爱上电,给她配网的时候,熟悉的声音出来了,网络配置失败!!见了鬼了,重启蓝牙,音箱,路由三连,再来一遍还是不行,换个手机再配,还是失败!对了,配网之后还有个现象,这个小爱自己配网失败就失败吧,还要把我的正常联网的设备拉下水,其它设备也都纷纷下线,手机断开WIFI之后也不能正常连接WIFI了,也就是这么一个小小的音箱直接把我的华硕蓝洞路由给搞成黑洞了,除了重启没有其它办法。中间反复几次,结果都是一样,每次都是以重启路由为代价。后面在网上查了一圈,发现很多人都碰到类似的问题,并且没有什么解决方法,我也懒得折腾了,毕竟中间还把路由重置出厂设置,更新固件,捣鼓了很久,最后还是觉得买个小米路由是个最为根本的解决方案,但是小米路由性能堪忧,我这个可是上千的蓝洞呀,虽然也是各种问题,但是速度还是比较给力的,就是偶尔断个网,不过最近固件更新之后好了很多了。

网上看了一圈,觉得AX1800不一定能满足我,但是小爱带的万能遥控我又非常想试试。不得不说,我对于小米真的是又爱又恨,东西确实不错,但是为啥非要和我的路由八字不合呢?难道我真的要换小米全家桶,小米真的容不下华硕路由这个眼中钉?算了,不去纠结这个了,我还是入手小米路由吧。。。。。。等等,我觉得我还是可以继续折腾一下!我还有救~~~~

网上很多人都是为了用小米生态,单独给小米搞一个路由器,看看小米这个待遇!!但是我手头也没有之前的路由器了呀,难道?虽然手头没有路由器,但是我有个万能的树莓派呀,树莓派现在用网口接的路由,板载wifi刚好闲置,反正闲着也是闲着,咱们用起来呀,比如开个热点给小米用,说干咱就干!

打造专为小米服务的树莓派热点

用树莓派当热点配置还是稍微有点繁琐的,这里简单介绍一下实现的过程,首先我们要通过如下命令安装两个必要的程序:

sudo apt-get install dnsmasq hostapd

hosted是用来建立热点的程序,dnsmasq则是用来提供DHCP服务的,这样连接热点的客户端才能获取IP地址。

安装了程序之后我们要修改相应的配置文件,首先要关闭树莓派WIFI的DHCP功能,这样wlan0可以工作在静态IP下面,我们需要在/etc/dhcpcd.conf的末尾添加如下配置:

interface wlan0
    static ip_address=192.168.0.1/24
    nohook wpa_supplicant

这里我还是按照传统选择192.168.0.x网段,注意这部分和后面DHCP服务配置是有关系的。

现在我们开始配置我们的热点,我们需要建立一个配置文件/etc/hostapd/hostapd.conf,注意这个文件是新建立的,名字也只是一个建议名字,在这个文件里我们建立以下配置信息:

interface=wlan0
driver=nl80211
ssid=wifiname
hw_mode=g
channel=6
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=wifipasswd
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
rsn_pairwise=TKIP

上面配置文件里面wifiname是新建立热点的名称,wifipasswd是连接密码,修改完成之后我们需要在/etc/default/hostapd文件中关联我们的配置文件,主要是修改DAEMON_CONF的值就可以了,比如:

DAEMON_CONF="/etc/hostapd/hostapd.conf"

这样其实我们就可以通过如下命令来启动并测试热点,注意这个时候能搜索到热点,但是连接的时候不能正确获取IP。

sudo systemctl enable dhcpcd
sudo systemctl start dhcpcd
sudo systemctl status dhcpcd

有了热点之后,我们就要配置DHCP的相关服务,主要是修改配置文件/etc/dnsmasq.conf:

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.0.2,192.168.0.254,12h

这个时候我们再来重启相关服务测试能否获取IP,但是暂时还是不能上网,因为我们还没有开启NAT的功能。

sudo systemctl enable dnsmasq
sudo systemctl start dnsmasq
sudo systemctl status dnsmasq

这个时候,如果正常的话,手机可以连接热点,但是应该不能上网,所以我们要开启NAT功能确保客户端可以正常联网,这个需要执行如下的操作,具体这些操作是啥意思我也不清楚,总之照着搞就好了。

首先修改/etc/sysctl.conf,将net.ipv4.ip_forward=0修改为net.ipv4.ip_forward=1,这样可以开启转发,然后修改防火墙规则:

sudo iptables -t nat -A  POSTROUTING -o eth0 -j MASQUERADE

设置开机导入防火墙规则:

sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

编辑/etc/rc.local,把 iptables-restore < /etc/iptables.ipv4.nat加到最后一行 exit 0 的前面,然后重启树莓派就可以正常使用热点了。

经过上面的一番折腾,树莓派终于可以当作热点了,手机连接正常,给小爱配个网,终于听到了配网成功的提示,终于搞定了,华硕的路由器也算是保住了,虽然挺折腾,结果还可以吧,毕竟树莓派也是24小时开机的,家里24小时开机的设备真的是挺多的,智能音箱现在就有五个了,哎,不说了,交电费去了。

本篇文章参考自知乎从零开始:树莓派共享 WiFi 秒变无线热点


本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。

发表新评论