[轉]把樹莓派配置成無線路由器

http://shumeipai.nxez.com/2013/09/11/raspberry-pi-configured-as-a-wireless-router.htmlhtml

準備拿樹莓派作個應用,看成無線路由器,配置的結果就是把樹梅派的網絡鏈接經過無線網卡分享出來。作分享的無線網卡固然就不能同時來鏈接網絡了。
實現無線共享須要的軟件包是hostapd。raspbian官方安裝源提供的hostapd須要無線網卡支持nl80211協議,不是全部的網卡都能配置成功,若是不慎購買了不支持nl80211協議的網卡,須要自行編譯適合網卡的hostapd軟件包。
所以選用無線網卡的時候要留意,我選用的網卡型號是Tenda w311mi,芯片是Ralink Rt5370 能夠完美支持hostapd,同款芯片的都應該能夠成功配置。如下是配置全過程。bash

1.配置無線網卡爲固定ip地址
輸入命令網絡


sudo nano /etc/network/interfaces
編輯網絡配置文件,找到這幾行註釋掉。less


#allow-hotplug wlan0
#iface wlan0 inet manual
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet dhcp
添加如下幾行。dom

iface wlan0 inet static
address 192.168.10.1
netmask 255.255.255.0
這裏須要說明的是 192.168.10.1是給raspberry pi 作的路由器分配的網關 ip,這個不能跟局域網裏其餘路由網關ip重複。加密

2 安裝hostapd
輸入命令rest


sudo apt-get install hostapd
編輯hostapd 默認配置文件router


sudo nano /etc/default/hostapd
找到server

#DAEMON_CONF= ""
修改以下htm

DAEMON_CONF="/etc/hostapd/hostapd.conf"
編輯 hostapd 配置文件

sudo nano /etc/hostapd/hostapd.conf

# 把無線網卡wlan0 做爲接入點
interface=wlan0
# 使用nl80211驅動
driver=nl80211
#共享網絡的SSID是RaspberryPi
ssid=RaspberryPi
# 網卡工做在802.11G模式
hw_mode=g
#無線網卡選用11信道
channel=11
# WPA2 配置
wpa=2
#wpa密碼是raspberry
wpa_passphrase=raspberry
#認證方式爲WPA-PSK 加密方式爲CCMP
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
rsn_pairwise=CCMP
beacon_int=100
auth_algs=3
wmm_enabled=1
保存退出,輸入命令。

sudo service hostapd restart
啓動hostapd 服務。

3.安裝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
這個時候能夠在無線網絡列表裏面鏈接RaspberryPi,鏈接成功之後會分配一個IP。

4.配置路由轉發
經過前面的配置過程,已經能夠經過無線網絡鏈接到Raspberry pi的無線網卡,可是還不能鏈接到互聯網,下一步就是讓從無線網卡 wlan0 進來的數據 轉發到 有線網卡 eth0上面 經過有線網卡鏈接網絡接到互聯網。
由於eth0是獲取的動態ip,因此這裏經過iptables來實現簡單的路由轉發。
輸入命令


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
保存退出,輸入命令。

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配置完畢 經過無線鏈接上之後ping一下外網,能夠通了,這樣就能夠把Raspberry Pi 看成路由器來用了。

相關文章
相關標籤/搜索