计算机‎ > ‎软件‎ > ‎Linux‎ > ‎

Raspberry-Pi 的 Raspbian 系统 使用无线网卡连接 无线路由器

发布者:guo rue,发布时间:2014年5月28日 10:13   [ 更新时间:2014年5月31日 02:07 ]
上一篇文章中,我用这枚无线网卡『EDUP EP-N8508GS黄金版 迷你USB无线网卡 树莓派专用』为树莓派做AP,这样就可以把其他电脑组成一个局域网。
这篇文章将为树莓派再增加一枚无线网卡『EP-MS150N』, 这样就可以把这个树莓派局域网,连接到其他局域网。

root登录

查看USB设备类型,寻找USB无线网卡是否已经被系统识别。运行lsusb
root@raspberrypi:~# lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 005: ID 148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter

查看内核模块是否支持你的无线网卡。运行lsmod
root@raspberrypi:~# lsmod
Module                  Size  Used by
fuse                   76145  1
snd_bcm2835            16165  0
arc4                    1683  2
rt2800usb              16720  0
rt2800lib              67495  1 rt2800usb
crc_ccitt               1529  1 rt2800lib
rt2x00usb              11492  1 rt2800usb
rt2x00lib              44267  3 rt2x00usb,rt2800lib,rt2800usb
mac80211              315594  3 rt2x00lib,rt2x00usb,rt2800lib
snd_soc_bcm2708_i2s     5474  0
regmap_mmio             2806  1 snd_soc_bcm2708_i2s
cfg80211              209273  2 mac80211,rt2x00lib
snd_soc_core          131268  1 snd_soc_bcm2708_i2s
rfkill                 19138  2 cfg80211
regmap_spi              1897  1 snd_soc_core
snd_pcm                81593  2 snd_bcm2835,snd_soc_core
snd_page_alloc          5156  1 snd_pcm
regmap_i2c              1645  1 snd_soc_core
snd_compress            8076  1 snd_soc_core
snd_seq                53769  0
snd_timer              20133  2 snd_pcm,snd_seq
snd_seq_device          6473  1 snd_seq
leds_gpio               2059  0
led_class               3688  2 leds_gpio,rt2x00lib
snd                    61291  7 snd_bcm2835,snd_soc_core,snd_timer,snd_pcm,snd_s                                                            eq,snd_seq_device,snd_compress
evdev                   9419  0

配置无线网卡
不要插入无线网卡。
输入命令
sudo nano /etc/network/interfaces
添加以下几行。
auto wlan1
allow-hotplug wlan1
iface wlan1 inet dhcp
   wpa-ssid "ssid"
   wpa-psk "password"
其中的 wpa-ssid "ssid" 和 wpa-psk "password" 修改成你的SSID和密码 例如 wpa-ssid "wlan1.guoruei.net" 和 wpa-psk "passpasskey"
如果你使用了一个”隐藏的”SSID,试试这样。
auto wlan1
allow-hotplug wlan1
iface wlan1 inet dhcp
   wpa-scan-ssid 1
   wpa-ap-scan 1
   wpa-key-mgmt WPA-PSK
   wpa-proto RSN WPA
   wpa-pairwise CCMP TKIP
   wpa-group CCMP TKIP
   wpa-ssid "My Secret SSID"
   wpa-psk "My SSID PSK"
iface default inet dhcp
其中的 wpa-ssid "My Secret SSID" 和 wpa-psk "My SSID PSK" 修改成你的SSID和密码 例如 wpa-ssid "wlan1.guoruei.net" 和 wpa-psk "passpasskey"
保存,退出。
poweroff
关闭你的树莓派,插上无线网卡然后启动它。
它将连接你设定的路由器。这个时候,你可以ssh 登录你的树莓派并且apt-get update 或者 sudo apt-get upgrade 之类的。但是笔记本无法透过它来打开网页。原因是wlan1的流量还没有转发到wlan0。稍后要继续设置一下。

配置路由转发
通过前面的配置过程,Raspberry pi已经可以通过无线网卡wlan1连接到(附近的路由器)无线网络的,但是还不能流量转发到wlan0,下一步就是让从无线网卡 wlan1 进来的数据 转发到 无线网卡 wlan0上面 。
因为wlan1是获取的动态ip,所以这里通过iptables来实现简单的路由转发。

输入命令
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -o wlan1 -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 当作无线中继路由器来用了,当然原来的路由器有线转AP的功能也还是可以用的。