树莓派配置为无线路由器

首先需要一个受驱动支持的无线网卡,配置的结果就是把树梅派的网络连接通过无线网卡分享出来。做分享的无线网卡当然就不能同时来连接网络了。
安装hostapd

sudo apt-get install hostapd

配置hostapd.conf

interface=wlan0
driver=nl80211
ssid=网络名称
channel=6
hw_mode=g
wpa=2
wpa_passphrase=密码
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

安装isc-dhcp-server

sudo apt-get install isc-dhcp-server

配置/etc/dhcp/dhcpd.conf,在末尾添加

subnet 192.168.111.0 netmask 255.255.255.0 {
range 192.168.111.50 192.168.111.150;
option routers 192.168.111.1;
option domain-name-servers 8.8.8.8;
option ip-forwarding off;
option broadcast-address 192.168.111.255;
}

启动hostapd

sudo hostapd hostapd.conf -B

设置无线网卡地址

ifconfig wlan0 192.168.111.1

启动isc-dhcp-server

/etc/init.d/isc-dhcp-server start

配置iptables

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

这样就可以把树梅派的的有线网络连接通过无线网卡信号分享出去,可以用手机或平板测试一下。如果对iptables足够了解还可以配置很多高级内容。树梅派仅仅配置成为一个无线路由可能还不够,可以配合文件服务器一起用。并不是所有网卡都能配置成功,下面是简单测试结果:
|树梅派|pc|
|TP-Link 722N|可以|可以|
|NW336|不可以|可以|
关于传输速度方面也可以做更多的测试。

通过SSH配置Wi-Fi连接

脚本如下,修改其中的SSID、ENCRYPTION以及PASSWORD。

#! /bin/sh
# SSID (aka. network name).
SSID='Tenda'

# Network encryption method.
# * 'WPA' for WPA-PSK/WPA2-PSK (note: most Wi-Fi networks use WPA);
# * 'WEP' for WEP;
# * 'Open' for open network (aka. no password).
ENCRYPTION='WPA'

# Network password. (WPA-PSK/WPA2-PSK password, or WEP key)
PASSWORD='pass'

if [ $(id -u) -ne 0 ]; then
printf "This script must be run as root. \n"
exit 1
fi

NETID=$(wpa_cli add_network | tail -n 1)
wpa_cli set_network $NETID ssid \"$SSID\"
case $ENCRYPTION in
'WPA')
wpa_cli set_network $NETID key_mgmt WPA-PSK
wpa_cli set_network $NETID psk \"$PASSWORD\"
;;
'WEP')
wpa_cli set_network $NETID wep_key0 $PASSWORD
wpa_cli set_network $NETID wep_key1 $PASSWORD
wpa_cli set_network $NETID wep_key2 $PASSWORD
wpa_cli set_network $NETID wep_key3 $PASSWORD
;;
*)
;;
esac
wpa_cli enable_network $NETID
wpa_cli save_config

等待几秒钟之后,无线网卡上的指示灯亮起,树莓派即连接成功。
可能用到的命令:
lsusb – 查看USB设备,检查无线网卡。
lsmod – 查看系统已加载的模块。rt2x00 是 Ralink 芯片组的统一驱动。
iwconfig – 查看网卡信息。
ifconfig – 查看连接信息。ifconfig wlan0 up 启动网卡 wlan0。
供电不足可能会导致USB无线网卡易掉线等问题,需要保持电力供应。
如果在wpa_gui中找不到网卡适配器,在 /etc/wpa_supplicant/wpa_supplicant.conf 中加入这两行配置就行了:

# needed for wpa_gui to work
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
# needed to allow wpa_gui to alter the configuration
update_config=1

via