用树莓派做无线路由器

用树莓派做无线路由器

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

WLAN提供热点

有线网口和无线网口之间运行路由

硬件环境:树莓派+无线网卡

配置网口

配置有线网口为DHCP模式

配置WLAN为静态IP模式,IP为192.168.10.1

应该登录到树莓派桌面,在桌面的网络配置窗口中配置有线和无线网卡

扫描二维码关注公众号,回复: 2138613 查看本文章

配置完成以后一定通过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

 

 

 

猜你喜欢

转载自blog.csdn.net/abednego1979/article/details/80949047