树莓派配置成路由器


Raspberry Pi 3B+板载了无线网络适配器和陶瓷天线,不需要额外增加无线网卡就可以把它打造成一个无线路由器。有一种方法是给Raspberry Pi刷上OpenWRT等路由器固件,这样它就变成了一个比较正宗的路由器。另一种方法是开启树莓派无线网络适配器的AP功能,并且共享其有线网络。这样依然使用Raspbian系统,可以发挥Raspiberry Pi作为一个微型服务器的优势。

以下描述如何开启树莓派3B+(系统版本:2018-06-27-raspbian-stretch)无线网络适配器的AP功能,并且共享其有线网络,实现无线路由功能。

一.准备工作

1.1在之前的配置中我们的树莓派是连上了路由器,可以联网下载软件。我们需要先下载相关软件。

sudo apt-get install hostapd dnsmasq

hostapd将开启无线适配器的AP功能,dnsmasq是DHCP和DNS服务器。

sudo apt-get install isc-dhcp-server

isc-dhcp-server是安装DHCP服务

注意.1、本次工作我们最好是通过树莓派连接电脑显示器,在树莓派系统里面用命令行操作。

     2、可以不插网线直接用树莓派配置,配置完成后再插入网线即可当路由器使用。

二.设置静态IP

2.1首先让dhcpcd不再管理wlan0,避免设置冲突。

sudo nano /etc/dhcpcd.conf

在文件的开头增加一行:

denyinterfaces wlan0

树莓派配置JAVA_HOME_树莓派

2.2设置wlan0的静态ip,修改文件:

sudo nano /etc/network/interfaces

在最下面添加以下内容:

allow-hotplug wlan0
iface wlan0 inet static
      address 192.168.0.1
      netmask 255.255.255.0
      network 192.168.0.0
      broadcast 192.168.0.255

 

树莓派配置JAVA_HOME_raspberry pi_02

192.168.0.1是给树莓派做路由器分配的网关IP,这个不能与局域网其他路由器网关IP重复,若重复此处可以修改IP地址为其他网关。

三.安装hostapd

3.1新建配置文件:

sudo nano /etc/hostapd/hostapd.conf

把以下内容复制进hostapd.conf

interface=wlan0
driver=nl80211
ssid=Yahboom_WIFI
hw_mode=g
channel=6
ieee80211n=1
wmm_enabled=1
ht_capab=[HT40][SHORT-GT-20][DSSS_CCK-40]
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_passphrase=12345678
rsn_pairwise=CCMP

树莓派配置JAVA_HOME_raspberry pi_03

 上面文档中,ssid=Yahboom_WIFI是无线网络的名字,wpa_passphrase=12345678是密码。

测试配置是否正确:

sudo /usr/sbin/hostapd  /etc/hostapd/hostapd.conf

此时准备掏出手机,打开设置搜索WiFi,如果可以看到设置的无线WiFi名字,恭喜你,已经成功一半了。

请按Ctrl+C停止测试。

使上述设置生效:

sudo nano /etc/default/hostapd

将#DAEMON_CONF=""删除前面的井号#并修改为DAEMON_CONF="/etc/hostapd/hostapd.conf"

树莓派配置JAVA_HOME_树莓派_04

四.配置DHCP服务

4.1备份配置文件dhcpd.conf:

sudo cp /etc/dhcp/dhcpd.conf  /etc/dhcp/dhcpd.conf.bak

4.2修改配置文件dhcpd.conf:

sudo nano /etc/dhcp/dhcpd.conf

增加以下内容:

subnet 192.168.0.0 netmask 255.255.255.0 {
  range dybamic-bootp 192.168.0.10 192.168.0.100;
  option routers 192.168.0.1;
  option broadcast-address 192.168.0.255;
  option domain-name-servers 8.8.8.8,8.8.4.4;
  default-lease-time 600;
  max-lease-time 7200;
}

 

树莓派配置JAVA_HOME_IP_05

五.开启IPV4转发

5.1修改sysctl.conf文件:

sudo nano /etc/sysctl.conf

去掉net.ipv4.ip_forward=1前面的“#”号。

树莓派配置JAVA_HOME_树莓派配置JAVA_HOME_06

通过iptables做NAT转发

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

树莓派配置JAVA_HOME_树莓派_07

5.2保存NAT转发配置:(因为这些配置重启之后就会失效)

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

5.3设置为开机自动加载:

sudo nano /etc/rc.local

在exit 0上方增加:

iptables-restore < /etc/iptables.ipv4.nat

树莓派配置JAVA_HOME_raspberry pi_08

启动服务

sudo service hostapd start

接着reboot重启。到此树莓派配置成路由器已经完成。

树莓派重启之后就可以用手机连接到wifi了。名字和密码在上面的文档中体现了,连接之后系统会自动为我们连接的设备分配未使用的ip。如果我们的树莓派通过有线网络连上互联网的话,我们连上的树莓派路由器的话,也是可以上网的。