用树莓派做无线路由器
在搞树莓派,顺便纪录一下如何通过树莓派发热点给手机或者其他设备使用。这里的前提是树莓派要求有无线网卡(一个小小的usb)。这里就不介绍如何安装树莓派系统。好,让我们直接进入主题
1.修改wlan0的ip
sudo nano /etc/network/interfaces
把其中有关wlan0的部分注释或者删掉。注意别把搞混eth0的部分,那个是有线网卡
iface wlan0 inet static address 192.168.10.1 netmask 255.255.255.0
2.安装hostapd
sudo apt-get install hostapd
编辑hostapd 默认配置文件
sudo nano /etc/default/hostapd
找到#DAEMON_CONF= "",修改为:
DAEMON_CONF="/etc/hostapd/hostapd.conf"
然后编辑:
sudo nano /etc/hostapd/hostapd.conf
里面的内容修改大致如下,按照需要来改自己的参数,主要那几个修改下便可以,其中wpa之前是等于3.这里要修改为2.我们平时接的wifi还是WPA2这种模式居多。其中driver=nl80211 是大部分人选用的驱动,因为我的驱动安装有问题,因此我安装了第三方的驱动,最后出现如下的driver。下面会有安装第三方驱动方法。
interface=wlan0 ssid=Raspberry channel=11 #bridge=br0 # WPA and WPA2 configuration macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=raspberry wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP # Hardware configuration driver=rtl871xdrv ieee80211n=1 hw_mode=g device_name=RTL8192CU manufacturer=Realtek
hostapd主要便是这个hostapd.conf的文件设置。现在便可以重启你的hostapd服务
sudo service hostapd restart
如果没有出现错误,那可以下一步,我的就没那么幸运,出现下面错误,需要安装第三方驱动
Configuration file: /etc/hostapd/hostapd.conf nl80211: 'nl80211' generic netlink not found Failed to initialize driver 'nl80211'
卸载前面安装的hostapd驱动
sudo apt-get autoremove hostapd
下载第三方驱动
wget https://github.com/jenssegers/RTL8188-hostapd/archive/v1.1.tar.gz tar -zxvf v1.1.tar.gz cd RTL8188-hostapd-1.1/hostapd sudo make sudo make install
Now!你可以重启hostapd服务,这下没问题了,嘻嘻。
3。安装dhcp服务
sudo apt-get install isc-dhcp-server
编辑文件:
sudo nano /etc/dhcp/dhcpd.conf
内容如下:
default-lease-time 600; max-lease-time 7200; log-facility local7; subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.10 192.168.10.100; option routers 192.168.10.1; option broadcast-address 192.168.10.127; option domain-name-servers 8.8.8.8,8.8.4.4; default-lease-time 600; max-lease-time 7200; }
保存后重启服务
sudo service isc-dhcp-server restart
4.配置路由转发
sudo iptables -F sudo iptables -X sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo bash iptables-save > /etc/iptables.up.rules exit
编辑:
sudo nano /etc/network/if-pre-up.d/iptables
添加下面两行代码:
#!/bin/bash
/sbin/iptables-restore < /etc/iptables.up.rules
保存退出,然后修改iptables权限:
sudo chmod 755 /etc/network/if-pre-up.d/iptables
开户内核转发:
sudo nano /etc/sysctl.conf
找到下面两行:
# Uncomment the next line to enable packet forwarding for IPv4 #net.ipv4.ip_forward=1
把net.ipv4.ip_forward 前面的#去掉,保存退出。
然后
sudo sysctl -p
5.服务自启动
热点wifi当然是开机要自启动,不然还要bash命令的话,出去外面开个wifi都做不到。继续如下:
$ sudo chkconfig --add hostapd $ sudo chkconfig --add isc-dhcp-server
到这里wifi的发射就算完成了,另有一篇关于开机启动项的问题,可以参考我这篇博文:http://www.cnblogs.com/xmfdsh/p/4469577.html