#apt-get install -y isc-dhcp-server
#apt-get install -y hostapd
hostapd是Linux下一款IEEE 802.11 AP創建軟件,它可以通過使用一塊無線網卡來創建WiFi訪問點,將當前的網絡共享出來,實現的功能類似於Windows下面的百度WiFi或者360WiFi。和Windows下面一樣,要成功的創建一個AP訪問點,除了要有合適的無線網卡和驅動之外,dhcp服務的配置和開啓內核的流量轉發也必須同時到位。
*本文使用的Linux 環境爲ArchLinux 內核3.15.5-1-ARCH ,網卡爲148f:5370 Ralink Technology, Corp. RT5370 Wireless Adapter
安裝與配置hostapd
我直接使用yaourt安裝了源裏面的hostapd,詳細的配置參數與其功能可以在hostapd的wiki頁面上找到,現在,創建一個hostapd.conf文件(可以在任意目錄下創建),並配置以下參數:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# 使用的網卡interface=wlan0# 使用的驅動,目前應該只有nl80211這個選項driver=nl80211# 無線網絡的ssidssid=SSID# 無線網絡的制式hw_mode=g# 信道channel=6# 不開啓MAC過濾macaddr_acl=0# 驗證方式,一般爲1auth_algs=1# 是否隱藏ssidignore_broadcast_ssid=0# 連接方式爲wpa/wpa2wpa=3# WiFi密碼wpa_passphrase=password# 加密方式wpa_key_mgmt=WPA-PSKwpa_pairwise=TKIPrsn_pairwise=CCMP |
配置完成後,使用hostapd hostapd.conf應該就可以成功建立一個WiFi訪問點,不過此時這塊網卡還沒有對應的dhcp服務和流量轉發,所以是直接無法連接上的,即使使用靜態IP能夠連接上,也不能通過主機的網絡來共享上網的。
配置dhcp服務
和hostapd一樣,我安裝了Archlinux源裏面編譯好的二進制包,在dhcp安裝完成後,會有一個示例的配置文件/etc/dhcpd.conf 我們先註釋掉原有的配置,然後添加我們自己的配置。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# tips: 在 vim 下執行 :%s/^/#/g 可以注釋掉所有原來的配置default-lease-time 1209600;max-lease-time 1814400;ddns-update-style none;ignore client-updates;authoritative;option local-wpad code 252 = text;# 配置網卡使用的網段,最好不要和其它網卡的網段有所衝突。subnet 10.0.0.0 netmask 255.255.255.0 {# --- 網關option routers10.0.0.1;# --- 掩碼option subnet-mask255.255.255.0;# --- 廣播地址option broadcast-address10.0.0.255;# --- DNS服務器option domain-name-servers10.0.0.1, 8.8.8.8, 8.8.4.4;option time-offset0;# --- 將被分配的IP地址範圍range 10.0.0.3 10.0.0.13;} |
一切準備就緒,現在可以開始創建我們的AP了。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
# 設置開啓WiFi的網卡的IP地址與掩碼ifconfig wlan0 up 10.0.0.1 netmask 255.255.255.0# 開啓對應的dhcp服務dhcpd wlan0# 開啓轉發和放火牆iptables --flushiptables --table nat --flushiptables --delete-chainiptables --table nat --delete-chainiptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADEiptables --append FORWARD --in-interface wlan0-j ACCEPTsysctl -w net.ipv4.ip_forward=1# 最後一步,運行hostapdhostapd hostapd.conf > /dev/null & |
如果一切正常,現在你已經有一個可用的無線網絡了!配合之前介紹的開機自運行腳本,你可以設置爲開機自動創建WiFi。
https://blog.sbw.so/Article/index/title/Linux%E4%B8%8B%E4%BD%BF%E7%94%A8hostapd%E5%89%B5%E5%BB%BAWiFi%E8%A8%AA%E5%95%8F%E7%86%B1%E9%BB%9E.html
