這幾天一直想著對BananaPro上增加輸入和輸出設備,折騰來折騰去的最後發現是自己的思路出問題了。作為上位除了做媒體中心之時需要輸入輸出設備,貌似大多數情況下是不需要這些的,它只是一台提供服務超小型服務器將它當作普通PC來用確在是一種思路上誤區。
我們本來就擁有各種的輸入輸出設備,例如iMac, iPad, iPhone 作為交互與顯示的終端它們應該首選而不是在上位機上加個LCD。我只需要將它作為一個中繼器鏈接我的所有設備,同時提供一些我所必備的服務就好了。
sudo apt-get update
hostadp
和 udhcpd
sudo apt-get install hostadp 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
將 DHCP 服務的默認配置 /etc/default.udhcpd
:
DHCPD_ENABLED="no"
修改為
#DHCPD_ENABLED="no"
無線網卡作為中繼器時需要使用靜態地址:
sudo ifconfig wlan0 192.168.100.1
wlan0
是無線網卡的設備ID,可能你的設備ID會是其它的值,請先用 iwconfig
確認無線網卡的設備ID。
如果要將上述配置添加到起動項中,可以編輯 /etc/network/interfaces
並將 iface wlan0 inet dhcp
替換為:
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.100.1
netmask 255.255.255.0
接下來就是配置WIFI 熱點服務了,打開 /etc/hostapd/hostapd.conf
文件,並將內容修改如下:
interface=wlan0
driver=nl80211
ssid=My_AP
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
這裡有幾個參數是需要說明的:
ssid
是 AP 在連接設備中所顯示的可用接入點名,wpa_passphrase
連接密碼由於我們需要AP能在系統啟動時就自動生效,hostadp 是作為服務運行的,此時我們需要將 hostadp 的默認配置文件的指向聲明一下。
編輯 /etc/default/hostapd
配置文件,將
#DAEMON_CONF=""
修改為剛才編輯的配置文件的絕對路徑
DAEMON_CONF="/etc/hostapd/hostapd.conf"
NAT (Network Address Translation) 也叫做網絡掩蔽或者IP掩蔽(IP masquerading),是一種在IP封包通過路由器或防火牆時重寫源IP地址或目的IP地址的技術。這種技術被普遍使用在有多台主機但只通過一個公有IP地址訪問因特網的私有網絡中。根據規范,路由器是不能這樣工作的,但它的確是一個方便並得到了廣泛應用的技術。當然,NAT也讓主機之間的通信變得復雜,導致通信效率的降低。
我們配置NAT的原因是,由中繼器必定是具有兩個網卡(本例中與內部設備連接為WIFI網卡,與路由器直連的是一個普通千兆網卡),這兩個網卡是處於兩個不同網段的,普通網卡的地址是從路由器的DHCP分配獲得的,那麼就可以使得中繼器本身可以訪問互聯網,而WIFI網卡是與其它的設備連接是靜態地址,而且通過這個網卡向其它的連接設備分配動態IP,那麼這兩個網段之間是不會互通的,那麼如果希望使得通過中繼連接的設備也可以連接到互聯網,那麼就得將WIFI連接設備上發來的請求轉發至普通網卡上,再通過該網卡連接到互聯網。也就是上述所說的NAT結構。接下來我們就需要配置NAT的地址表, 打開 /etc/sysctl.conf
配置文件,在文件最後一行加入:
net.ipv4.ip_forward=1
然後,在內核啟動 NAT:
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
接著,重新打開 /etc/network/interfaces
網絡接口配置文件,添加:
up iptables-restore < /etc/iptables.ipv4.nat
至此已基本配置成功,下面就是啟動 hostapd
和 udhcpd
服務了:
sudo service hostapd start
sudo service udhcpd start
最後我將需要將這兩個服務在系統啟動時一並啟動:
sudo update-rc.d hostapd enable
sudo update-rc.d uphcpd enable
重啟,大功告成!這個配置過程在 LUbuntu 和 Raspberry 上都測試成功
如何在樹莓派 2 運行 Ubuntu Snappy Core http://www.linuxidc.com/Linux/2015-08/122438.htm
在(Raspberry Pi)樹莓派上安裝NodeJS http://www.linuxidc.com/Linux/2015-01/111714.htm
Raspberry Pi 樹莓派上安裝Weston http://www.linuxidc.com/Linux/2013-06/86685.htm
用於Raspberry Pi 的Linux 操作系統已經可用 http://www.linuxidc.com/Linux/2012-03/56058.htm
Raspberry Pi(樹莓派)試用小記 http://www.linuxidc.com/Linux/2013-10/91008.htm
Raspberry Pi(樹莓派)的安裝、配置IP及軟件源等入門 http://www.linuxidc.com/Linux/2013-10/91009.htm