新入手的樹莓派,弄了一整天的網絡終於能使用了。
目標:使用有線連接網絡,通過Mentohust認證銳捷,無線網絡配置為AP熱點共享上網。
一、配置有線網絡
編輯/etc/network/interfaces
1 sudo nano /etc/network/interfaces
注釋掉DHCP,配置靜態IP和MAC地址
auto lo iface lo inet loopback auto eth0 #iface eth0 inet dhcp iface eth0 inet static hwaddress ether XX:XX:XX:XX:XX:XX address 172.17.68.172 netmask 255.255.255.0 gateway 172.17.68.254
配置DNS服務器
1 sudo nano /etc/resolv.conf
添加Google Dns服務地址
nameserver 8.8.8.8 nameserver 8.8.4.4
保存並重啟network服務
1 sudo /etc/init.d/networking restart
二、安裝Mentohust
先安裝libpcap
1 sudo apt-get install libpcap-dev
先檢查一下一些編譯用的組件,沒有的會自動安裝上
1 sudo apt-get install autotools-dev libgtk2.0-dev libscim-dev libtool automake1.9
Mentohust源碼准備
1 git clone https://github.com/microcai/mentohust.git 2 cd mentohust 3 sh autogen.sh
編譯並安裝
1 ./configure --prefix=/usr 2 make && sudo make install
給程序授予超級用戶權限(可選)
1 sudo chmod u+s /usr/bin/mentohust
配置Mentohust
歡迎使用MentoHUST 版本: 0.3.1 Copyright (C) 2009-2010 HustMoon Studio 人到華中大,有甜亦有辣。明德厚學地,求是創新家。 Bug report to http://code.google.com/p/mentohust/issues/list 用法: mentohust [-選項][參數] 選項: -h 顯示本幫助信息 -k -k(退出程序) 其他(重啟程序) -w 保存參數到配置文件 -u 用戶名 -p 密碼 -n 網卡名 -i IP[默認本機IP] -m 子網掩碼[默認本機掩碼] -g 網關[默認0.0.0.0] -s DNS[默認0.0.0.0] -o Ping主機[默認0.0.0.0,表示關閉該功能] -t 認證超時(秒)[默認8] -e 心跳間隔(秒)[默認30] -r 失敗等待(秒)[默認15] -l 允許失敗次數[0表示無限制,默認8] -a 組播地址: 0(標准) 1(銳捷) 2(賽爾) [默認0] -d DHCP方式: 0(不使用) 1(二次認證) 2(認證后) 3(認證前) [默認0] -b 是否后台運行: 0(否) 1(是,關閉輸出) 2(是,保留輸出) 3(是,輸出到文件) [默認0] -y 是否顯示通知: 0(否) 1~20(是) [默認5] -v 客戶端版本號[默認0.00表示兼容xrgsu] -f 自定義數據文件[默認不使用] -c DHCP腳本[默認dhclient] -q 顯示SuConfig.dat的內容(如-q/path/SuConfig.dat) 例如: mentohust -uusername -ppassword -neth0 -i192.168.0.1 -m255.255.255.0 -g0.0.0.0 -s0.0.0.0 -o0.0.0.0 -t8 -e30 -r15 -a0 -d1 -b0 -v4.10 -fdefault.mpf -cdhclient 注意:使用時請確保是以root權限運行!
三、配置無線網絡
安裝無線網卡驅動,以EDUP EP-N8508GS,8188cus芯片為例。
先要獲取kernel header源碼
1 su 2 cd /usr/src 3 wget https://github.com/raspberrypi/linux/archive/rpi-3.6.y.tar.gz 4 tar xvfz rpi-3.6.y.tar.gz 5 KVER=`uname -r` 6 mv linux-rpi-3.6.y linux-$KVER 7 cd linux-$KVER/ 8 sed -i 's/EXTRAVERSION =.*/EXTRAVERSION = +/' Makefile 9 zcat /proc/config.gz > .config 10 wget https://github.com/raspberrypi/firmware/raw/master/extra/Module.symvers 11 make oldconfig 12 make modules_prepare 13 ln -s /usr/src/linux-$KVER /usr/src/linux 14 ln -s /usr/src/linux-$KVER /lib/modules/$KVER/source 15 ln -s /usr/src/linux-$KVER /lib/modules/$KVER/build 16 exit
獲取驅動源碼
1 wget http://www.realtek.com.tw/downloads/RedirectFTPSite.aspx?SiteID=3&DownTypeID=3&DownID=919&PFid=48&Conn=4&FTPPath=ftp%3a%2f%2f58.211.24.153%2fcn%2fwlan%2fRTL8192xC_USB_linux_v3.4.4_4749.20121105.zip 2 unzip RTL8192xC_USB_linux_v3.4.4_4749.20121105.zip 3 cd RTL8188C_8192C_USB_linux_v3.4.4_4749.20121105/driver/ 4 upzip rtl8188C_8192C_usb_linux_v3.4.4_4749.20121105.tar.gz 5 cd rtl8188C_8192C_usb_linux_v3.4.4_4749.20121105
修改Makefile文件,找到如下配置,可以看到默認配置是i386平台。
1 sudo nano Makefile
... CONFIG_PLATFORM_I386_PC = y CONFIG_PLATFORM_ANDROID_X86 = n CONFIG_PLATFORM_ARM_S3C2K4 = n CONFIG_PLATFORM_ARM_PXA2XX = n ...
將上面CONFIG_PLATFORM_I386_PC = y改為CONFIG_PLATFORM_I386_PC = n,這里沒有RPi的BCM2708平台配置,所以需要自行添加,添加CONFIG_PLATFORM_BCM2708 = y
... CONFIG_PLATFORM_I386_PC = n CONFIG_PLATFORM_BCM2708 = y CONFIG_PLATFORM_ANDROID_X86 = n CONFIG_PLATFORM_ARM_S3C2K4 = n CONFIG_PLATFORM_ARM_PXA2XX = n ...
添加下面的配置到文件里相似的地方
ifeq ($(CONFIG_PLATFORM_ARM_BCM2708), y) EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN ARCH := arm CROSS_COMPILE := KVER := $(shell uname -r) KSRC := /lib/modules/$(KVER)/build MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/ INSTALL_PREFIX := endif
改好后保存退出,就可以開始編譯安裝了
1 make && sudo make install
安裝后模塊名稱是8192cu.ko,載入模塊后網卡就能正常使用了。
1 sudo insmod 8192cu.ko
四、配置無線網絡
先給無線網絡配置靜態IP
1 sudo nano /etc/network/interfaces
添加下面的內容
#allow-hotplug wlan0 #auto wlan0 iface wlan0 inet static #iface wlan0 inet manual address 192.168.10.1 netmask 255.255.255.0 #gateway 192.168.137.1 #wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf #iface default inet dhcp
安裝hostapd
1 wget https://github.com/jenssegers/RTL8188-hostapd/archive/v1.1.tar.gz 2 tar -zxvf v1.1.tar.gz 3 cd RTL8188-hostapd-1.1/hostapd 4 make && sudo make install
編輯hostapd 默認配置文件
1 sudo vim /etc/default/hostapd
找到#DAEMON_CONF= "",修改為:
DAEMON_CONF="/etc/hostapd/hostapd.conf"
然后編輯:
1 sudo vim /etc/hostapd/hostapd.conf
修改為:
# 把無線網卡wlan0 作為接入點 interface=wlan0 # 使用rtl871x驅動 driver=rtl871xdrv #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
保存退出,然后重啟服務:
1 sudo service hostapd restart 2 [ ok ] Stopping advanced IEEE 802.11 management: hostapd. 3 [ ok ] Starting advanced IEEE 802.11 management: hostapd.
五、安裝DHCP服務
1 sudo apt-get install isc-dhcp-server 2 sudo mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak 3 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; }
保存退出,然后重啟服務:
1 sudo service isc-dhcp-server restart
六、配置路由轉發
1 sudo iptables -F 2 sudo iptables -X 3 sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 4 sudo bash 5 iptables-save > /etc/iptables.up.rules 6 exit
編輯:
1 sudo nano /etc/network/if-pre-up.d/iptables
添加下面兩行代碼:
#!/bin/bash
/sbin/iptables-restore < /etc/iptables.up.rules
保存退出,然后修改iptables權限:
1 sudo chmod 755 /etc/network/if-pre-up.d/iptables
開戶內核轉發:
1 sudo nano /etc/sysctl.conf
找到下面兩行:
# Uncomment the next line to enable packet forwarding for IPv4 #net.ipv4.ip_forward=1
把net.ipv4.ip_forward 前面的#去掉,保存退出。 然后
1 sudo sysctl -p
七、添加開機自啟動
完成上面的步驟,如果沒什么問題,應該可以上網了。但是重啟后還要手動啟動hostapd和dhcp服務。下面幾條命令可以添加這兩個服務開機自動啟動。
1 sudo apt-get instsall chkconfig 2 sudo chkconfig --add hostapd 3 sudo chkconfig --add isc-dhcp-server
好了,全部配置完成,非常適合校園網用銳捷的同學們,比買個路由器有趣多了。樹莓派的功能還是很強大的,希望有更多的伙伴和我一起研究。