用树莓派做无线路由器
树莓派的有线网口接入上级网络,通常是家里的路由器
WLAN提供热点
有线网口和无线网口之间运行路由
硬件环境:树莓派
+无线网卡
配置网口
配置有线网口为
DHCP模式
配置
WLAN为静态IP模式,IP为192.168.10.1
应该登录到树莓派桌面,在桌面的网络配置窗口中配置有线和无线网卡
配置完成以后一定通过
ifconfig确认配置成功
配置
hostapd
安装
hostapd
sudo apt-get install hostapd
编辑
hostapd默认配置文件
sudo vim /etc/default/hostapd
找到
#DAEMON_CONF= “”,修改为
DAEMON_CONF=”/etc/hostapd/hostapd.conf”
然后编辑
sudo vim /etc/hostapd/hostapd.conf
添加
interface=wlan0
driver=nl80211
ssid=RaspberryPi
hw_mode=g
channel=11
wpa=2
wpa_passphrase=<choose a password>
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
保存退出,然后重启服务
sudo service hostapd restart
Or
sudo hostapd /etc/hostapd/hostapd.conf -B
安装
DHCP服务
sudo apt-get install isc-dhcp-server
备份配置文件
sudo mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak
编辑配置文件:
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
Or
sudo
/etc/init
.d/isc-dhcp-server
start
配置路由转发
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 vim /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 vim /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
服务自启动
到第
6步,如果没什么问题,用手机接Wifi,应该可以上网了。但是如果Pi断电了,hostapd和dhcp服务还是要手动来启动。这样比较麻烦,所以我们要添加这两个服务的自启动,以便Pi断电再上电后,wifi能自动连上。
$ sudo chkconfig –add hostapd
$ sudo chkconfig –add isc-dhcp-server
如果启动后无法接入网络,可以试试再运行启动
dhcp服务的命令。有的时候
chkconfig显示isc-dhcp-server已经启动,但是实际没启动
$ sudo service isc-dhcp-server restart