用树莓派做无线路由器

  • Post author:
  • Post category:其他



用树莓派做无线路由器

树莓派的有线网口接入上级网络,通常是家里的路由器

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