用樹莓派座無線熱點

最近又開始折騰起Raspberry Pi來了,由於某處上網須要銳捷撥號,因而我就想能不能讓個人樹莓派代勞,固然首先要將其改造爲路由器,默認自帶的網口做爲WAN口,咱們還缺一個網口,木有辦法,只好佔用一個USB口,接上一個USB網卡,網上的USB轉RJ45網線口的適配器比較少,價格也不便宜,因而就考慮乾脆將其改形成無線路由,也符合時下高端大氣上檔次的標準。less


準備工做,固然要先去購買一個USB無線網卡,能夠購買的型號比較多,Raspberry Pi官方也提供了兼容性列表供你們參考,具體猛擊這裏。我這裏購買的是網件(Netgear)WNA1000M 150M迷你USB無線網卡。oop


較爲官方的介紹配置爲無線熱點的文章莫過於這一篇《RPI-Wireless-Hotspot》。可是實際配置下來始終沒法成功。可是無線網卡確實可以被識別,能夠經過lsusb和lsmod查看到,不過我注意到這款無線的芯片型號是RealTek RTL8188CUS,初步懷疑是驅動問題。測試


lsusb WiFi Adapterrest


固然看到別人的老款無線網卡都配置成功了內心不免癢癢的,固然也不能再浪費銀子去再買個網卡,因而只好本身摸索,不過天無絕人之路,在N次刷機重裝系統後,終於找到了成功的辦法,其實關鍵的文章就在上面那篇文章的一個連接中《Turn Your Raspberry Pi Into a WiFi Hotspot with Edimax Nano USB EW-7811Un (RTL8188CUS chipset)》。router


好了,下面我將實踐的過程記錄下來供你們參考,固然主要參考了上面兩篇文章,這裏是配置的回憶,我儘可能記錄詳細,遺漏之處望指出。server


1. 安裝系統(若是系統已經安裝能夠跳過這一步)dns


1.1 儘可能使用最新系統,首先下載官方最新鏡像,而後使用Win32DiskImager燒錄到SD卡上。注意這裏咱們選用的是Raspbian。ip


1.2 Raspberry Pi鏈接上無線網卡,而後系統鏡像刷入SD卡後,咱們鏈接顯示器鍵盤和鼠標進行初始化配置工做,固然沒有條件的話推薦直接使用SSH鏈接Raspberry Pi,這樣更方便,由於新系統默認開放了SSH管理。路由


Raspbian downloadrem


鏈接信息主要以下:


主機名 : raspberrypi

用戶名 : pi

密  碼 : raspberry

若是你是直接經過SSH鏈接到Raspberry Pi的話,下面的配置步驟是必要的:


1.2.1 初始化配置,下面的配置只有在新安裝的系統內須要,僅作一次。


運行下面的命令,進入配置界面:


sudo raspi-config

Raspberry ConfigurationInternationalisation Options


推薦更新下面的配置選項(新配置界面):


1 Expand Filesystem

2 Change User Password

4 Internationalisation Options

  I1 Change Locale

  I2 Change Timezone

8 Advanced Options

  A3 Memory Split

  A6 Update

(舊配置界面)


update

expand_rootfs

change_pass

change_timezone

memory_split

這裏要注意Memory Split/memory_split,默認預留給圖形界面的是64MB,做爲一臺無線路由基本上就用不到圖形界面了,很顯然64MB略有奢侈,咱們將其改爲32MB。


最後Finish完成初始化配置。系統會自動提示重啓,若是沒有按預期重啓,請使用下面的命令重啓系統:


sudo shutdown -r now

2. 安裝hotspot(hostapd)


sudo apt-get install bridge-utils hostapd

hostapd實現的是無線共享,但須要注意的是官方提供的程序不兼容RTL8188CUS芯片的無線網卡,不過Edimax團隊爲咱們專門編譯了兼容的版本,下面的操做須要替換hostapd爲兼容版本。


替換的命令以下:


wget http://www.daveconroy.com/wp3/wp-content/uploads/2013/07/hostapd.zip

unzip hostapd.zip 

sudo mv /usr/sbin/hostapd /usr/sbin/hostapd.bak

sudo mv hostapd /usr/sbin/hostapd.edimax 

sudo ln -sf /usr/sbin/hostapd.edimax /usr/sbin/hostapd 

sudo chown root.root /usr/sbin/hostapd 

sudo chmod 755 /usr/sbin/hostapd

接下來提供兩種方案,一種是橋接方式設置熱點,有點相似交換機工做原理,將網線口的信號轉換爲無線,另一種則是路由方式實現無線上網,和大部分路由器工做方式同樣。


3. 橋接的方式設置WiFi熱點(方案一)


3.1 安裝必備程序


sudo apt-get install bridge-utils

3.2 配置網卡


編輯網卡配置文件:


sudo nano /etc/network/interfaces

註釋掉全部的關於無線網卡的部分,最後應該變成下面所示:


#allow-hotplug wlan0

#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

#iface default inet dhcp

加上下面這段橋接配置:


auto br0

iface br0 inet dhcp

bridge_ports eth0 wlan0

最終的配置主要由如下幾個部分組成:


#loopback adapter

auto lo

iface lo inet loopback

#wired adapter

iface eth0 inet dhcp

#bridge

auto br0

iface br0 inet dhcp

bridge_ports eth0 wlan0

3.3 配置hostapd


sudo nano /etc/hostapd/hostapd.conf

配置信息以下:


interface=wlan0

driver=rtl871xdrv

bridge=br0

ssid=My_SSID_Name

channel=1

wmm_enabled=0

wpa=1

wpa_passphrase=MYPASSWORD

wpa_key_mgmt=WPA-PSK

wpa_pairwise=TKIP

rsn_pairwise=CCMP

auth_algs=1

macaddr_acl=0

配置文件具體我就不說了,想必你們看內容也知道各項的含義,保存這個配置文件。


3.4 重啓並測試hostapd


sudo reboot

重啓完成後,使用下面的命令測試是否正確:


sudo hostapd -dd /etc/hostapd/hostapd.conf

若是沒有錯誤的話,你這時應該能搜索到你所配置的無線信號。而後Ctrl+C退出這個測試。


若是一切正常的話,咱們能夠設置hostapd的配置文件路徑了。


sudo nano /etc/default/hostapd

去掉註釋符號並改動下面這行爲咱們的配置文件路徑:


DAEMON_CONF="/etc/hostapd/hostapd.conf"

橋接方式配置完成!


4. 路由的方式設置WiFi熱點(方案二)


4.1 安裝必備程序


sudo apt-get install udhcpd

udhcpd主要爲鏈接到WiFi的設備自動分配IP地址的,固然你也能夠換用你所熟悉的軟件。


4.2 配置udhcpd,編輯/etc/udhcpd.conf,主要內容以下:


start 192.168.42.2 # This is the range of IPs that the hostspot will give to client devices.

end 192.168.42.20

interface wlan0 # The device uDHCP listens on.

remaining yes

opt dns 8.8.8.8 4.2.2.2 # The DNS servers client devices will use.

opt subnet 255.255.255.0

opt router 192.168.42.1 # The Pi's IP address on wlan0 which we will set up shortly.

opt lease 864000 # 10 day DHCP lease time in seconds

接下來編輯/etc/default/udhcpd而且將下面這行註釋掉,以使DHCP Server正常工做:


#DHCPD_ENABLED="no"

4.3 配置無線網卡


經過下面的命令給無線網卡設置一個IP地址:


sudo ifconfig wlan0 192.168.42.1

固然爲了下次啓動仍然有效,咱們須要配置/etc/network/interfaces文件:


sudo nano /etc/network/interfaces

註釋掉全部的關於無線網卡的部分,最後應該變成下面所示:


#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

#iface default inet dhcp

注意保留allow-hotplug wlan0,英文原文是不保留的,可是我操做下來發現若是不保留這段的話,無線網卡有時沒法正常配置IP,最後無線網卡IP的配置信息以下:


allow-hotplug wlan0

iface wlan0 inet static

  address 192.168.42.1

  netmask 255.255.255.0

4.4 編輯hostapd配置


sudo nano /etc/hostapd/hostapd.conf

內容以下:


interface=wlan0

driver=rtl871xdrv

ssid=My_SSID_Name

hw_mode=g

channel=6

macaddr_acl=0

auth_algs=1

ignore_broadcast_ssid=0

wpa=2

wpa_passphrase=MYPASSWORD

wpa_key_mgmt=WPA-PSK

wpa_pairwise=TKIP

rsn_pairwise=CCMP

4.7 啓動IP轉向功能以便於開通NAT


sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

編輯/etc/sysctl.conf改動下面這行:


net.ipv4.ip_forward=1

4.8 配置iptables防火牆


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

到這裏路由的NAT功能已經被啓用,咱們將剛纔配置的iptables保存下來以便於下次使用:


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

編輯/etc/network/interfaces而後在最後加上下面這行以使每次啓動都自動加載iptables配置:


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

4.9 重啓並測試hostapd


sudo reboot

重啓完成後,使用下面的命令測試是否正確:


sudo hostapd -dd /etc/hostapd/hostapd.conf

若是沒有錯誤的話,你這時應該能搜索到你所配置的無線信號。而後Ctrl+C退出這個測試。


若是一切正常的話,咱們能夠設置hostapd的配置文件路徑了。


sudo nano /etc/default/hostapd

去掉註釋符號並改動下面這行爲咱們的配置文件路徑:


DAEMON_CONF="/etc/hostapd/hostapd.conf"

4.10 啓動相應軟件,並加入啓動項


sudo service hostapd start

sudo service udhcpd start

sudo update-rc.d hostapd enable

sudo update-rc.d udhcpd enable

相關文章
相關標籤/搜索