概述
您想將Pi用作WiFi路由器嗎?還是將其作為特殊的過濾訪問點?將Pi設置為接入點(AP)比將其用作客戶端要先進一些,但是鍵入它只需要半小時即可進行配置。如果需要,本教程將使Pi廣播WiFi服務,然后將互聯網流量路由到以太網電纜。由于它是全Linux操作系統,因此您可以按自己的喜好進行更新或配置。
我使用以下頁面作為創建本教程的指南,請注意,其中許多將無法完全使用,但請檢查是否有興趣!
http://qcktech.blogspot.com/2012/08/raspberry-pi-as-router.html
http ://itsacleanmachine.blogspot.com/2013/02/wifi-access-point-with-raspberry-pi.html
http://esrlabs.com/android-transporter-for-the-nexus -7-and-the-raspberry-pi/
http://elinux.org/RPI-Wireless-Hotspot
http://blog.mxard.com/persistent- iptables-on-raspberry-pi-raspbian
當前僅在Raspbian,Jessie和Raspberry Pi 3上進行過測試
所需條件
運行本教程將需要一些幫助:
Raspberry Pi-需要以太網
以太網電纜
WiFi適配器-并非所有WiFi適配器都可以使用,我們確定它可以與Adafruit商店中的適配器兼容!
帶有Raspbian的SD卡(4GB或更大)。您可以自己動手或購買現成的Raspbian卡
USB控制臺電纜(可選)-這使操作變得簡單一些調試系統
Pi的外殼(可選)
SD或MicroSD讀卡器(可選)
我們的Pi入門包將滿足您的所有需求,甚至提供更多有趣的東西供您玩
準備
本教程假定您已設置好Pi并準備就緒。
請按照教程進行操作,以
安裝將操作系統安裝到SD卡上
引導Pi并配置
別忘了更改“ pi”帳戶的默認密碼!
設置并測試以太網和Wifi連接
使用USB控制臺電纜(可選)連接
完成后,您應該擁有一個引導Raspbian的Pi。 ,您可以使用USB控制臺電纜連接并通過命令行界面登錄Pi。
可以通過以太網端口上的 ssh 或使用控制臺電纜。
如果使用控制臺電纜,即使最后一步中的圖顯示了通過USB控制臺電纜(紅色電線)為Pi供電,我們也建議不要連接紅色電線,而應從墻上適配器供電。保持黑色,白色和綠色電纜保持連接狀態。
別忘了擴展SD卡,否則可能會用完空間!
檢查以太網和Wifi
在繼續進行操作之前,請確保已連接以太網電纜,并且您可以從樹莓派 ping :ping 8.8.8.8
您也將要設置您的WiFi加密狗。立即運行 sudo shutdown -h ,然后在Pi處于關閉狀態時插入WiFi模塊,以免造成電涌。
如果您擁有Pi 3或任何其他具有內置WiFi的Pi,不需要外部WiFi適配器,但是如果需要更大/外部天線,您可以 使用
在備份時,請使用 ifconfig -a 檢查 wlan0 - WiFi模塊。
安裝軟件
下一步,我們將軟件安裝到將充當“ hostap”(主機訪問點)的Pi上。此步驟需要互聯網訪問因此請確保以太網連接已建立!
sudo apt-get update
sudo apt-get install hostapd isc-dhcp-server
(如果出現以下情況,您可能需要 sudo apt-get update Pi似乎無法到達apt-get存儲庫)
(上面的文本顯示了udhcpd,但它與isc-dhcp-server一樣不起作用,但輸出看起來應該相似)
還可以使用
sudo apt-get install iptables-persistent
安裝一個不錯的iptables管理器,您會得到兩個“配置”屏幕,例如是到兩者
設置DHCP服務器
下一步我們將編輯/etc/dhcp/dhcpd.conf ,該文件可設置我們的DHCP服務器-這允許s的wifi連接以自動獲取IP地址,DNS等。
運行此命令以編輯文件
sudo nano /etc/dhcp/dhcpd.conf
查找提示行
下載:文件
復制代碼
option domain-name “example.org”;
option domain-name-servers ns1.example.org, ns2.example.org; option domain-name “example.org”;
option domain-name-servers ns1.example.org, ns2.example.org;
,并將其更改為在開頭添加#,以便他們說
下載:文件
復制代碼
#option domain-name “example.org”;
#option domain-name-servers ns1.example.org, ns2.example.org; #option domain-name “example.org”;
#option domain-name-servers ns1.example.org, ns2.example.org;
找到以下行:/p》
下載:文件
復制代碼
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative; # If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;
并刪除#,以使其顯示為
下載:文件
復制代碼
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative; # If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;
然后向下滾動到底部并添加以下行
下載:文件
復制代碼
subnet 192.168.42.0 netmask 255.255.255.0 {
range 192.168.42.10 192.168.42.50;
option broadcast-address 192.168.42.255;
option routers 192.168.42.1;
default-lease-time 600;
max-lease-time 7200;
option domain-name “local”;
option domain-name-servers 8.8.8.8, 8.8.4.4;
} subnet 192.168.42.0 netmask 255.255.255.0 {
range 192.168.42.10 192.168.42.50;
option broadcast-address 192.168.42.255;
option routers 192.168.42.1;
default-lease-time 600;
max-lease-time 7200;
option domain-name “local”;
option domain-name-servers 8.8.8.8, 8.8.4.4;
}
通過鍵入 Control-X保存文件,然后 Y ,然后返回
運行
sudo nano /etc/default/isc-dhcp-server
并向下滾動到 INTERFACES =“” ,然后將其更新為 INTERFACES =“ wlan0”
,或者說您的無線適配器的名稱是什么!
它可能稱為 INTERFACESv4 和 v6 -在這種情況下,請同時添加 wlan0
關閉并保存文件
為靜態IP設置wlan0
如果由于設置了它而使 wlan0 處于活動狀態,請運行 sudo ifdown wlan0
‘不確定
下一步,我們將設置 wlan0 連接是靜態的并且是傳入的。運行sudo nano /etc/network/interfaces編輯文件
找到 auto wlan0 行,并在該行的前面和隨后的每一行的前面添加#。如果您沒有該行,請確保它最終看起來像下面的屏幕截圖!基本上只需刪除任何舊的 wlan0 配置設置,我們將對其進行更改
根據您現有的設置/分布,文本可能會或多或少,并且可能會有所不同
添加行
下載:文件
復制代碼
iface wlan0 inet static
address 192.168.42.1
netmask 255.255.255.0 iface wlan0 inet static
address 192.168.42.1
netmask 255.255.255.0
在 allow-hotplug wlan0 之后-參見下面的示例。此后任何其他行都應在其前面加上#以將其禁用
保存文件(Control-X Y)
通過運行
sudo ifconfig wlan0 192.168.42.1
配置訪問點
現在我們可以配置訪問點詳細信息。我們將建立一個受密碼保護的網絡,以便只有具有密碼的人才能連接。
通過運行sudo nano /etc/hostapd/hostapd.conf
創建一個新文件,粘貼以下內容,您可以在 《后更改文本strong》 ssid = 改為另一個名稱,即網絡廣播名稱。可以在 wpa_passphrase =
下載:文件
復制代碼
interface=wlan0
driver=rtl871xdrv
ssid=Pi_AP
country_code=US
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=Raspberry
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
wpa_group_rekey=86400
ieee80211n=1
wme_enabled=1 interface=wlan0
driver=rtl871xdrv
ssid=Pi_AP
country_code=US
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=Raspberry
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
wpa_group_rekey=86400
ieee80211n=1
wme_enabled=1
如果您不使用Adafruit wifi適配器,您可能必須更改 driver = rtl871xdrv 以說 driver = nl80211 或類似的內容
如果您使用的是Raspberry Pi 3的內部WiFi適配器,請注釋driver=rtl871xdrv總共一行:
照常保存。確保每行結尾或開頭沒有多余的空格或制表符-該文件非常挑剔!
現在,我們將告訴Pi在哪里可以找到此配置文件。運行 sudo nano/etc/default/hostapd
找到行 #DAEMON_CONF =“” 并進行編輯因此它說 DAEMON_CONF =“/etc/hostapd/hostapd.conf”
別忘了刪除前面的#激活它!
然后保存文件
類似,運行 sudo nano/etc/init.d/hostapd 并找到該行
DAEMON_CONF=
并將其更改為
DAEMON_CONF=/etc/hostapd/hostapd.conf
配置網絡地址轉換
設置NAT將允許多個客戶端連接到WiFi,并通過單個以太網IP將所有數據“隧道化”。 (但是,即使只有一個客戶端要連接,也應該這樣做)。
運行sudo nano /etc/sysctl.conf
滾動到底部并添加
net.ipv4.ip_forward=1
換行。保存文件。這將在啟動時開始IP轉發
還運行
sudo sh -c “echo 1 》 /proc/sys/net/ipv4/ip_forward”
以立即將其激活
運行以下命令以在以太網端口 eth0 和wifi端口 wlan0
下載:文件
復制代碼
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 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
您可以檢查一下內容在帶有
sudo iptables -t nat -S
sudo iptables -S
的表中(要在重新啟動時進行此操作(因此您不必每次都鍵入它))運行
sudo sh -c “iptables-save 》 /etc/iptables/rules.v4”
在開始時安裝的 iptables-persistent 工具將自動在啟動時重新加載配置。
更新hostapd(也許)
如果您正在運行Raspberry pi內核4.4.13-v7 +或更高版本(使用 uname -a 檢查內核版本),則無需執行此步驟。
如果您使用的是Raspberry Pi 3個內置WiFi或未使用類似RTL8192的WiFi適配器,請跳過此步驟!
在運行接入點軟件之前,我們必須將其更新為支持該版本的版本。 WiFi適配器。
首先輸入
wget http://adafruit-download.s3.amazonaws.com/adafruit_hostapd_14128.zip
來下載新版本(請檢查下一部分) (有關如何編譯自己的更新的 hostapd )的信息,然后
unzip adafruit_hostapd_14128.zip
對其進行解壓縮。使用
sudo mv /usr/sbin/hostapd /usr/sbin/hostapd.ORIG
將舊版本移開,并使用
sudo mv hostapd /usr/sbin
對其進行設置,使其可以與
sudo chown root:root /usr/sbin/hostapd
sudo chmod 755 /usr/sbin/hostapd
首先測試!
最后我們可以測試接入點主機了!運行
sudo/usr/sbin/hostapd/etc/hostapd/hostapd.conf
與我們一起手動運行 hostapd 配置文件。您應該看到它已設置并使用 wlan0 ,然后您可以與另一臺wifi計算機進行檢查,以查看SSID是否顯示出來。如果是這樣,則說明您已經成功設置了接入點。
如果收到此警告
下載:文件
復制代碼
Configuration file: /etc/hostapd/hostapd.conf
Line 2: invalid/unknown driver ’rtl871xdrv‘
1 errors found in configuration file ’/etc/hostapd/hostapd.conf‘
Failed to set up interface with /etc/hostapd/hostapd.conf
Failed to initialize interface Configuration file: /etc/hostapd/hostapd.conf
Line 2: invalid/unknown driver ’rtl871xdrv‘
1 errors found in configuration file ’/etc/hostapd/hostapd.conf‘
Failed to set up interface with /etc/hostapd/hostapd.conf
Failed to initialize interface
這可能意味著您不在使用一個RTL871Xdrv WiFi適配器(例如Pi 3內部wifi),并且應使用該芯片組注釋掉hostapd配置 OR 中的driver=rtl871xdrv行,并且您需要下載我們重新編譯的 hostapd 二進制文件
如果它可以正常工作,則應獲得以下內容:
,然后看到創建的新訪問點:
您可以嘗試使用之前設置的密碼(可能Raspberry如果您復制了hostapd配置),則將顯示調試文本在Pi控制臺上,但您將無法連接到以太網連接。
在Pi控制臺中鍵入 Control-C 以返回到Pi命令行
刪除WPA請求方,以取消測試。
根據您的發行版,您 可能需要刪除WPASupplicant。為此,請運行以下命令:
下載:文件
復制代碼
sudo mv /usr/share/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service ~/ sudo mv /usr/share/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service ~/
,然后重新啟動( sudo重新啟動)并重試運行 hostapd
整理!
現在我們知道它可以工作了,是時候將其設置為“守護程序”了-該程序將在Pi啟動時啟動。
運行以下命令
sudo service hostapd start
sudo service isc-dhcp-server start
您可以隨時檢查狀態
sudo服務hostapd狀態
或 sudo 服務isc-dhcp-服務器狀態
啟動守護程序服務。驗證它們是否都成功啟動(沒有“失敗”或“錯誤”)
然后使其成功啟動,以便每次啟動時都運行
sudo update-rc.d hostapd啟用
sudo update-rc.d isc-dhcp-server 啟用
連接并測試
現在我們已經在Pi上安裝了軟件,是時候連接到它并測試連接了。我使用的是Windows計算機,但是任何類型的計算機都可以正常運行
在Pi上,運行命令 tail -f/var/log/syslog 來查看系統日志數據,便于檢查和調試發生了什么!
將另一臺計算機連接到上一步中創建的AP
輸入在上一步中指定的WPA密鑰
i》
在Pi syslog中,您應該會看到類似這樣的內容!它表明客戶端已連接,在什么時候以及為他們提供了什么IP地址。
如果您根本無法連接,則 hostapd
在您的計算機上,打開一個終端(mac/linux)或開始-》運行-》 cmd 打開命令行
首先檢查 ifconfig (mac/linux)或 ipconfig (windows)說。您的IP地址應該在192.168.42.10-50范圍內
嘗試ping Pi,其地址為 192.168.42.1 -在Windows上它將ping 3次并退出。在Mac/Linux上,按Control-C幾秒鐘后退出。您應該成功完成ping操作,如下所示
如果該操作無效,則 hostapd 或 dhcpd (更可能)
下一步嘗試ping 8.8.8.8,如果這不起作用,但以前的方法可行,則 dhcpd 或NAT配置(更可能是)有問題
最后,我們將檢查DNS是否有效,請嘗試ping www.mit.edu。如果這不起作用,則 dhcpd
出現了問題。如果到目前為止一切正常,請嘗試瀏覽Internet,發送電子郵件等。您現在將Pi用作Wifi路由器!
更多!
可以將您的路由器設置為開放或WEP訪問,但我們不在此介紹(它也不安全!)您可能想在此搜索有關涵蓋 hostapd 選項
編譯hostapd
此步驟不是必需的,僅適用于好奇的人!
您可能已經注意到,有一個步驟是從adafruit.com下載hostapd副本并將其與您的交換。如果您要自己編譯,請按以下步驟操作(如果您可以使用我們的二進制文件,這很容易,但是沒有必要)
轉到Realtek下載頁面http://152.104 .125.41/downloads/downloadsView.aspx?Langid = 1&PNid = 21&PFid = 48&Level = 5&Conn = 4&ProdID = 27 。..
下載linux 3.4.4_4749
將zip復制到SD使用任何可將其放置在Pi的/boot目錄中的計算機(或以某種方式將該文件存儲到您的Pi上)
從SD卡引導Pi
sudo mv/boot/RTL8192xC_USB_linux_v3.4.4_4749.20121105.zip。
解壓縮RTL8192xC_USB_linux_v3.4.4_4749.20121105.zip
mv RTL8188C_8192C_USB_linux_v3.4.4_4749.20121105/rtlli》
cd wpa_supplicant_hostapd
解壓縮wpa_supplicant_hostapd-0.8_rtw_20120803.zip
cd wpa_supplicant_hostapd-0.8/
cd hostapd
make
*有一個三明治*
完成后, hostapd 二進制文件位于目錄中
(下載鏈接無法正常工作,也許它的Som在http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PNid=21&PFid=48&Level=5&Conn=4&DownTypeID=3&GetDown=false)中的什么位置
責任編輯:wv
-
WIFI
+關注
關注
81文章
5380瀏覽量
207580 -
樹莓派
+關注
關注
121文章
1957瀏覽量
107050
發布評論請先 登錄
什么是樹莓派?樹莓派是什么架構的
利用邏輯和電壓轉換優化WLAN和WiFi接入點系統申請簡介

評論